Initial change messages should go with the insert

Join these together into one batch write to the database
when running on gerrit-review.

Change-Id: I25e473854c6bdd707fd105dd71fe3533c34c26c4
Always use caller's ReviewDb in ApprovalsUtil

On the database supporting gerrit-review we need to always use the
caller's ReviewDb handle. Crossing ReviewDb handles while updating
a change causes failures. The refactoring in 4f47ab7468e16c42ee9cf
broke pushes with %r= naming reviewers.

Even on stock SQL systems the JDBC handle is not thread safe.
ReceiveCommits may be using multiple threads to update changes,
and those threads must have their own private ReviewDb handles.
The caller has these handles, but Guice does not. So the caller
must pass them through to ensure there is no corruption of the
JDBC client or the gwtorm wrapper.

Colby suggested using a factory here, but that is overkill.
The object already takes all data as arguments.

Change-Id: I147048f6c07981f79b2e8703555140f14f7b45a6
Merge changes I147048f6,I25e47385

* changes:
  Always use caller's ReviewDb in ApprovalsUtil
  Initial change messages should go with the insert