Add/binary support

Building on engine.io's new binary support, added cross-browser support of sending and receiving events with binary data to socket.io client. Supports sending of Buffers, ArrayBuffers, Blobs, and Files. In the process, rewrote the interface with socket.io-parser to deal with the new asynchronous encoding. 

See https://github.com/kevin-roark/socketio-binaryexample for an example of how it works.