CCBC-390: Implement "Datatype" handling

This introduces "Datatype" handling. _Datatype_ is the name of a byte in
the protocol field which was previously unused, and of which Couchbase
Server 3.0 utilizes the two low bits to indicate if a value is JSON
and/or compressed.

This patch:

- Exposes options controlling compression and inflation
- Optionally compresses and inflates outgoing and incoming data
- Advertises the datatype support in the HELLO negotiation
- Handles relocation of compressed payloads by inflating them before
  being retried.

Change-Id: I222fd140507be1f02409be29efd56cd5733fa207
Reviewed-on: http://review.couchbase.org/37616
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>