Design for Multiuser support

Goal:  Extend cricketdaemon and apps to track multiple users at once.
The design should minimize changes to the software already in place.

Each client runs an instance of cricketdaemon.  The cricketdaemon should
"advertise" itself a multiuser proxy at a well known port.  For now, the
advertisement is addressed to (but not restricted only to) the
localhost.  In the multiuser mode, a cricketdaemon needs to use a
different port.  The advertisement contains the port number being used
by the cricketdaemon.

A Multiuser proxy runs in the localhost and listens to advertisement
from cricketdaemons.  When it receives an ad from a cricketdaemon, the
proxy creates a new instance of clientlib.ServerBroker to connect to the
cricketdaemon just like the old CricketDaemon application.

A multiuser application uses clientlib.MultiUserProxyBroker to connect
to the multiuser proxy.  It's API is the same as ServerBroker except
that on a callback, it returns a clientlib.data.MultiUserCricketData.
The clientlib.data.MultiUserCricketData object simply contains an array
of UserRecords, which is a triplet of <UserID, CricketData, Mask>.


