Add Gerrit.on('showchange', f) to JS plugin API

chromium-review.googlesource.com uses a chunk of JavaScript to monitor
the anchor, detect if the URL is #/c/...  style, and then extracts the
project name out of a table cell.  This is a horrible way to add web
UI logic based on the project.

Add an event to ChangeScreen2 that plugins can register against.  Pass
the ChangeInfo so functions can use native properties like "project"
instead of scraping the displayed web interface.

Change-Id: Ie6daed2598d4e4f9c9fe0dee40ab2e36b81012bf
Add Gerrit.on('submitchange', f) to JS plugin API

Allow JavaScript plugins to register additional handlers onto the
submit button on the change screen, and reject the operation if the
plugin does not think it is reasonable to invoke submit from the
interactive web UI at this time.

chromium-review uses a chunk of JS to warn developers if the tree
is blocked due to a build error.  Fixes for the build need to be
submitted anyway, while most other changes should be avoided:

  Gerrit.on('submitchange', function (c, r) {
    return confirm('Tree is blocked, submit anyway?');
  });

Change-Id: I5a7fc94654ce47f83d250a31d5384d46744a2954
Add Gerrit.on('history', f) to JS plugin API

The history event is fired when the browser displays a new screen.  It
replaces the older gerrit_addHistoryHook(f) function.  To give plugins
and site owners time to migrate the UI will continue supporting the
old function.

Change-Id: I3fdaa326b50cae1daa24564c4f1b3349fdc765fe
ChangeScreen2: Add change_plugins element

Like change_actions define change_plugins as an element identifed by
id for plugins to install their own DOM nodes into.

A plugin rendering build status information from a could listen for
view updates with Gerit.on("showchange", f) to capture the ChangeInfo
and RevisionInfo being presented, query the build server, and add that
data into the DOM node.

Change-Id: Ie1cfb6bc25292d9f54b0db8f565a0bb4079d713d
Compute plugin name by stack trace only once

During Gerrit.install() the name is computed and saved into the plugin
instance. Instead of computing it again, cache the current name from
the plugin object.

Change-Id: Iecafd5ec16eb23bde99c7aeb286bb8916609965b
Fix Schema_86 to use correct UUID for Change Owner group

The constant UUID must be used, not a generated UUID.

Change-Id: I83e330b999f32794fa051f6325528962a9a8e9fd
Provide better groupId in example for Maven plugin archetype

For plugins we normally use
  com.googlesource.gerrit.plugins.<plugin-name>
as groupId and package name.

Change-Id: I03dac0dd008ca51b75c203a916f891977cef50f3
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
Move system groups into their own backend

Delete 'Anonymous Users', 'Registered Users', 'Project Owners' and
'Change Owner' from the database and account_groups table.  Define
them inside of a specialized SystemGroupBackend class.

Change-Id: Ia67add4630579f3d0ce25edcfd662bbcf918dc8f
Merge "Provide better groupId in example for Maven plugin archetype"
Replace wildcard static import in AllProjectsCreator

Change-Id: I20fdc69ebbd7e1e5d58b300d9472c0ff30d14482
Merge "Replace wildcard static import in AllProjectsCreator"
Recognize IE10 GWT permutation for Themer

Change-Id: Id8905f5b07f14c54555a3ebf79fc979c9c3f52be