Instantiate a client from just a token

These are changes to make it possible to instantiate a client from just a token.  The biggest obstacle was the fact that it was trying to pull the userId out of localStorage as well, which meant that you needed to provide both a userId and a token to get it to work.  There wasn't really any technical need for that, so I removed that requirement and have it operating directly on a token.

The way to instantiate a client based on a token is now to just provide a storage object that has the token in it and you are good to go.

@jh-bate @nicolashery Can you give this a once over?  I'd like to get this deployed tomorrow with jellyfish and metrics, so please keep that timeline in mind.