Keep old timestamps during data migration

As part of the update to patch_set_approavals, the category names
are changed. Doing so causes "ON UPDATE CURRENT_TIMESTAMP" in at
least MySQL to replace all of the existing timestamps with the
time of the migration. Since the purpose of CURRENT_TIMESTAMP
here is to track when the approval vote happened, this is a loss
of data.

Amend the data migration to include granted=granted in the update
list so that anyone running the migration will not lose their
data.

Change-Id: If80891018eae0fab75770a5aea5a382200e9112f
More detailed error message when failing to upload new change

When the uploaded change cannot be created on the underlying
Git repository, a more descriptive error message is displayed
on both client and server side.
This allows to troubleshoot internal errors (e.g. JGit lock failures
or other causes) and help out in the resolution.

Example:
Previous message in case of ref contention:
internal server error
New message:
Unable to create changes: LOCK_FAILED

Issue: 2284
GerritForge-Issue: GERICS-312
Change-Id: I8bfebc350c964484f25d575e96261d4a422b02d0
(cherry picked from commit 64c1b3e206240abbb71d78482f18ec1d9faa06ec)
Merge branch 'stable-2.8' into stable-2.9

* stable-2.8:
  Keep old timestamps during data migration