Updated protocol-facing code to reflect new binary protocol

NOTES:

This reflects the latest code in my binary revisions of socket.io-protocol. It uses the protocol's new Encoder and Decoder objects, and listens for the Decoder's 'decoded' event to handle decoded packets.

COMMIT MESSAGE:
This is a squash of 6 small commits. Below is a summary of each. The gist
is that manager.js encoding and decoding portions were changed to work
with the new socket.io-protocol; this includes handling of encoding
a list of packets, and handling sequences of binary packets.

Commit 1 was the initial rewrite.

Commit 2 got all the tests passing via bug fixes.

Commit 3 updated the has-binary-data dependency and the build.

Commit 4 added nice comments.

Commits 5 and 6 updated build and engine.io dependencies respectively.