Any time we add a byte array to a protobuf, it'll copy the byte array.
I was playing with the client and noticed how a bunch of CPU and copying was being done just to copy basic arrays doing pb construction. I started to look at ByteString and then remembered a class Benoit sent me a while back that I did not understand from his new AsyncHBase. After looking in ByteString it made now sense. So, rather than copy byte arrays everywhere, do a version of a ByteString that instead wraps the array.