Add support for SAP MaxDB

SAP MaxDB (http://maxdb.sap.com/) is now supported as a database.

Depends-On: I9385bafe481152ce0c1471f2a7f89b1db5abac80
Change-Id: Iae2ad25a3db3a1069b80cf5733c92882da86e404
Doc: Consistently refer to "Web UI" rather than "WebUI"

Change-Id: Ia41e162394fa0f9ab9ae05c16db0c3032fde19cf
Add documentation with screenshots for the new review UIs

The new review UI documentation should describe the new change screen
and the new side-by-side diff screen. It provides screenshots in which
the described UI elements are highlighted so that users can easily
find the described functionality in the UI. This documentation is
based on the description of the new screens in the 'What’s new in
Gerrit 2.9' presentation that was shown at the Gerrit User Summit
2014. With this change only the commit message block and the commit
info block are documented. Follow-up changes will document the other
UI elememts. Once the new documentation is ready it should replace
new change screen introduction that is already contained in the
documentation. This guide is purely text-base and hence more difficult
to consume for users.

[1] http://storage.googleapis.com/gerrit-talks/gerrit-new-features-2.9.html

Change-Id: I5dcae829b091d405b9cd6774d63dba869b059f75
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
Describe change view preference in review UI documentation

The review UI documentation should contain that users are still able
to use the old change by changing their preferences.

Change-Id: I49c16e0a5e78dda8e7140d249a2dd90f6c633906
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
Avoid loading all SSH keys when adding a new one

Load only the last one (with the highest seq number) as this is the only
thing we need to determine the next seq number.

Change-Id: Ia4e8a03d489984b8e5c1b5e887a863a0b7d4a9a9
Extend extensions-api Changes with query methods

QueryParameter can be constructed with a fluent interface.

Change-Id: I443a5b16aba11b72d7b1593e9d68021636747b50
Extend extensions-api Projects with list methods

ListParameter can be constructed with a fluent interface.

Change-Id: Ic9222bcfc9b4ca4211c9f9621ca524ce952e7a52
Merge "Extend extensions-api Changes with query methods"
Merge "Extend extensions-api Projects with list methods"
Merge "Add support for SAP MaxDB"
Merge "Add documentation with screenshots for the new review UIs" into stable-2.9
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
Merge "Describe change view preference in review UI documentation" into stable-2.9
Move ReviewInput.Comment to abstract class Comment

This class is used in both CommentInfo and ReviewInput.CommentInput.

Change-Id: I933ec829488d777a11b84aa57108415568950f58
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
Merge "Move ReviewInput.Comment to abstract class Comment"
Merge "More detailed error message when failing to upload new change"
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)
Fix MESSAGES and CURRENT_REVISION to only return current revision

In ac60c6e530d36622 a bug was introduced causing all revisions to be
returned if the caller asked for both MESSAGES and CURRENT_REVISION.
Filter the revisions obtained from the database to only the current.

Change-Id: I5098704e482cbe8dceb66b9dcdbba2c8547e27d2
Merge branch 'stable-2.8' into stable-2.9

* stable-2.8:
  Keep old timestamps during data migration