Refactor: the ChannelManager used to be responsible for getting the auth token when you initially subscribe. It only did it once, which means that if the subscription gets queued the token will be stale by the time the connection comes up. Changed it so that the fetching of the auth token and building of the subscribe message is now done by the PrivateChannelImpl and PresenceChannelImpl classes themselves, and only when they actually need to subscribe. They will also call the authorizer every time they need to subscribe, which should make resubscription after a connection loss work properly. Also added EndToEndTest.java which mocks out very little (just the websocket) so is useful for making API calls to Pusher and seeing which messages come out the other end.