Re-implement ThriftBinaryDeserializer.
This implementation uses its own transport and protocol,
rather than the ones from TDeserializer.

Overrides some of the methods in TBinaryProtocol so that
Thrift does not take very large amounts of CPU while
skipping bad records in some cases.
review comments :
 - include type value in exception message
 - fix javadoc.
Merge pull request #322 from rangadi/improve_reading_bad_thrift_records

Re-implement ThriftBinaryDeserializer to handle corrupt data better