Added optional transport parameter to initializer of serializer and deserializer.
Created branch t_add_debug_functionality from master
added function entry, exit, and custom message logging functionality
added function entry, exit, and custom message logging functionality
add C pointer to ruby value and ruby value to C pointer converter macros
added fast implementation of memory buffer
added tests for memory buffer and fast memory buffer

Fast implementation works by storing all data in a C struct,
and storing the pointer as a number as an internal ruby variable.

Thus the internals of the data structure and stored data is inaccessible
from Ruby other than the public API
Merge branch 't_add_debug_functionality' into t_new_speedup_serializer
Merge branch 't_rewrite_memory_buffer' into t_new_speedup_serializer
Created branch t_add_compact_layered_protocol from t_new_speedup_serializer
added protocol_transfer layer abstract implementation
added protocol transfer bypass implenetation
added protocol transfer buffered implementation
added common tests for old and layered implementation of compact protocol
Created branch t_add_flush_to_protocol from t_add_compact_layered_protocol
added flush method to base protocol
fixed missing external definition of flush_method_id
added compact protocol implementation
added safeguard for empty buffer for fastmemorybuffertransport
added factory classes for layered compact protocol implementations
added fast implementation of Thrift::Struct and Thrift::Struct_Union using a shortcut C method table