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.
Can we return an error in this case instead of silently ignoring the field?