Start adding support for Prepare/Flush in KV client.

Added api.proto BatchRequest/BatchResponse support. In the process,
decided that the InternalEndTxn call was a mistake and removed it.
This necessitated a sanitization mechanism in the public KV DB to
strip out any commit triggers and associated unittest.

The Prepare/Flush work is still unimplemented, but thought I'd send
this as the removal of InternalEndTxn was significant enough to be
confusing.