Added support for Kryo, Protocol Buffers, and Jackson JSON support based around a shared SerializationCodec.

The new abstract SerializationCodec handles writing type names into the Buffer so that any object can be read and written without registering any special handlers. It does this by encoding into the Buffer the length of the class name as an int, then the class name as bytes, then the actual bytes of the message. When decoding, the process is reversed and the class name is read from the Buffer so that that exact class type can be instantiated. Most serialization engines require a type to be efficient anyway, so the only thing needed in the Codec is to maintain the class name of the original object.
Added support for compression of data using either GZIP or Snappy.

We might also want to use a "deflate" compression scheme as well in case the client on the other end doesn't use GZIP.

The compression is implemented by subclassing a common CompressionCodec and configuring it's own particular variation on InputStream and OutputStream. These codecs require a delegate Codec to function. This makes them a little bit harder to configure since you have to nest your serialization codec with this compression codec, then wrap that with a framing codec like LengthFieldCodec. It wouldn't hurt to have a DSL or something to set this up.
Merge pull request #263 from reactor/enhancement-261-common-serializers

Fixes #261 Provides OOTB support for common serializers