Add a semi-evil helper class to avoid copying byte arrays from protobufs.

Because the protobuf library unfortunately decided that to be really
safe one would always have to copy a byte[] out of a ByteString,
even though the majority of the time this is unnecessary after having
de-serialized a message from the wire.  One of the things AsyncHBase
watches out for is not only the memory footprint but also the rate at
which memory is allocated.  Without this trick, we have to create an
additional copy of every single byte array we obtain from protobufs.

HBase has even chosen to put some of the data outside of the protobufs
to avoid copying it, which is really a bummer IMO as it would have
been nicer to have everything in the RPC be protobuf'ed, instead of
having part of the payload be outside of the protobuf message as an
optimization.
De-serialize RPC responses from HBase 0.95+.
Add a helper function to de-serialize protocol buffers.
Handle META lookups with 0.95+.

Add basic code to de-serialize Get responses as well as
the RegionInfo they contain when doing META lookups.
Dedup byte arrays when deserializing KeyValues from 0.95+.