Switch to binary decoding, and include a snapshot of protobufs.
Add protobuf dependency to Python package.
Make sure a variable is defined before referenced.
Update the protobuf format and parse all optional fields.
Add a bit of a hacked up, scary implementation of protobuf decoding.

There's no method built into the protobuf library for parsing a
delimited stream (each msg prefixed with the length) so I had to roll
our own - it's not too complicated in theory but it doens't really jive
without old way of parsing messages, so this got a bit ugly.
Fix the dashboard with a quick hack to the "data remaining" check.
Update generated protobuf format.
Stop running 3.2 test suite - protobuf dependency blocks support.
Refactor protobuf parsing.
Continue clean up of protobuf parsing, fix a corner case.
Auto-detect and parse JSON or protocol buffers.

Fixed #28.
Document dropped support for Python 3.
Merge branch 'next' into binary-encoding