Started working on Thrift support. Skeleton + String reading routines
Added method to read the header of Thrift messages
Started fields decoding
Added support for all simple types
Refactored the simple types handling.

New approach has one function per type, all having
the same signature, so that they can be used in a
map of functions.
Added support for lists.

Max size for lists and strings can be configured. This means
that the size of the data being sent can be maintained under
control.
Added support for sets
Added support for maps. Also:

* Strings are now escaped and quoted.
* ThriftListMaxSize renamed to ThriftCollectionMaxSize because it
  applies to all collection types.
Added support for structs as parameters. This means we now support all Thrift types.
Fixed a bug regarding the returned bytes read. Added more tests to very this for all types
A couple more full request tests
More tests, now with replies as well
Added transaction handling.

For now, it's very similar with the way we do things for HTTP,
but I plan some better ways of handling high traffic.
Publish thrift transactions
Added a Thrift type to group module's globals.

This type has the variables controlling the behavior as
well as all functions related to parsing.
Refactoring to make things more unit-testable
Added basic support for the framed transport.

For now, not taking advantage of knowing the frame size (some
nice optimizations are possible regarding that).
Split and interleaved tests
Assume one-way request on Fin before reply
Two requests in a row -> assume one way requests