Adding client kv to indexing and client

This allows the client and server to take advantage of the fixed implementation of Put and Delete to use custom KeyValues (specifically the ClientKeyValue added in c4babad0ab6568b85d867d0a60852064711adbed). This saves on byte[] copies into and outof the keyvalue.

This unfortunately touched a lot more than I wanted it to, but passes all tests locally. The biggest issue has been in the UngroupedAggregateRegionObserver, wherein there was a bug where an immutable bytes writable was changed; this was resolved by just making a new pointer and just using that instead.