datastore: tests: refactor pb/transaction.

This makes it so protobuf request encoding/response decoding and transactional/non-transactional properties are all handled in one place.
From `transaction.js`, you no longer need to add a property onto the request object. If `this.id` is set, it's a transaction, and this will handle setting these properties for you.