Add support for User Streams

Support User Streams in a manner analogous to (and using nearly all of
the same code as) the existing Public Stream support.

Add a startUser method to StreamClient which behaves similarly to the
existing start method but connects to a User Stream rather than a Public
Stream.

It might be more consistent if the methods were startPublic and
startUser (or another similar convention), but this patch only adds the
startUser method and leaves the decision of renaming existing methods up
to the maintainers.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>