renamed outputBuffer to buffer. added ErrorType and some error types. added Id and Ack for messages. created Session#terminate that closes everything cleanly. created Session#pushOutput that refuses to block, and logs errors if it would have blocked. replying with ack messages to all messages with id.
created an id sequence for the client. renamed callbacks to subscriptions. added callbacks and errbacks to provide proper async response handling in the client. moved buffer flushing from onconnect to incoming Welcome messages. made pusher.send provide ids for all objects with id==true, and register callback/errback for all objects with callback or errback.
removed the authorize call