Support JSON for plugin list command

Move the plugin list command implementation to the server, so it can
be used from HTTP. Add a format option.

Signed-off-by: Brad Larson <bklarson@gmail.com>
Change-Id: Ie0621d78eb0f3f0fbd37e9fb42452f027ab7c349
Apply @RequiresCapability to REST API

Move the @RequiresCapability from SSHD to gerrit-extension-api. Modify
the RestApiServlet to check the current user has the required
capabilities. All RestApiServlets must now inject the currentUser
provider in their constructor and pass it to the super class.

Signed-off-by: Brad Larson <bklarson@gmail.com>
Change-Id: Iffc9bc99b8d2fafd07bf624008719b0ec647ce7d
Add servlet to list plugins

Plugin information can now be retrieved from a REST interface by loading
<server-url>/a/plugins/.  The user must have administrate server
capabilities.

Signed-off-by: Brad Larson <bklarson@gmail.com>
Change-Id: I4d6663cca5ecee24e894b771f5a7a5e839cea326
Add Plugin web UI

Put a link under Admin to show the list of installed plugins

Signed-off-by: Brad Larson <bklarson@gmail.com>
Change-Id: I35d41fd49ed88dc17bdf5bed55e18299cb98f07f
Add ColumnFormatter/StringUtil classes for text output

The ColumnFormatter class will simplify output of column-oriented text
for SSH commands like ls-groups and others (including HTTP counterparts)
that may print user-supplied text that can contain tab and newline
characters that would screw up scripts using these commands for
automation. To deal with this, all text output is subject to C-style
escaping of all non-printable characters. The escaping in done in the
new StringUtil class.

So far this new functionality is only used by the ls-projects command
when the project description is printed. The escaping method used there
previously only took care of newline characters.

Change-Id: Ia605bbc44fc82d69d2f40b337319368aefd01eee
Merge changes I35d41fd4,I4d6663cc,Iffc9bc99,Ie0621d78

* changes:
  Add Plugin web UI
  Add servlet to list plugins
  Apply @RequiresCapability to REST API
  Support JSON for plugin list command
Refactor cmdline parsing into gerrit-server

Now that both gerrit-sshd and gerrit-httpd use CmdLineParser, it makes
sense that the handlers for particular classes exist in a module
accessible by both.  This change moves the command line parsing portion
of SshModule into gerrit-server in a class called CmdLineParserModule.

Change-Id: I9312996a2b14106c039bc4c25ed80a52e3df79e7
Use expanded branch name when querying for change

When parsing an id triplet, use the expanded branch name to lookup the
change.  This issue did not surface previously because this code is not
yet in use.

Change-Id: Ibcf68a5d0e75aeff549dd455fd795f4d0a0a48ba
Update JGit to 1.3.0.201202151440-r.190-g65f6e06

This version does not require Maven3 and Tycho.

Change-Id: I1e1e338fa4044f75017aedf500f7ef5a8cbbd507
Merge "Add ColumnFormatter/StringUtil classes for text output"
Change style of commit message box display and use UiBinder.

Put a box around the commit message with a title and emphasis on the
commit summary. The <pre> element for the body is hidden if only the
summary is submitted.

Changed CommitMessageBlock widget to use UiBinder.

Change-Id: I36fbe60cb2f4e90b7b9e9145f7af4e2b0776fa85
Merge "Update JGit to 1.3.0.201202151440-r.190-g65f6e06"
Merge "Change style of commit message box display and use UiBinder."
Add new ACL for abandoning changes

Bug: Issue 930
Change-Id: I9275cc8de218953dc9f5c211f0c60e8008b8efb9
Merge "Add new ACL for abandoning changes"