New functionality allowing one project's trigger to depend on others'.

This feature adds a Project Dependency system to the gerrit trigger
plugin. In the advanced section of the trigger, it is possible to add
projects as "dependencies" (a check for cycles is performed at that time
to prevent depending on something which depends on self).
There is an auto-complete functionality.
If such a dependency project is added, then when a gerrit event happens
which should trigger both the project and its upstream dependency, the
new QueueTaskDispatcher will wait for the upstream to finish before
building the downstream project.

Known limitation: in "normal" situations, the dispatcher must assume
that all projects are triggered before any build is considered in the
queue by Jenkins to check if it canRun(). This is usually the case
because of a "quiet" period of 3 seconds allowing triggering to
complete, even for a large number of projects, before queue is
processed.
For the RetriggerAll action and ManualPatchsetCreated, this limitation
is not present as there are hooks allowing to guarantee that all
projects are triggered before consideration of the queue.
Moved files to follow new plugin src architecture.

Also removed unused lines, and changed constructor parameter to
GerritHandler rather than HandlerLifecycle as this was overkill.
Clarify that the "Current Patches Only" option also cancels current builds

Enabling this option not only cancels non-running scheduled builds, but
also currently running builds.
Merge pull request #140 from sschuberth/master

Clarify that the "Current Patches Only" option also cancels current buil...
Various improvements for extension hardening and more unit tests.

- Defensive NPE protection around possible null GerritHandler
  (future-proofing)
- Moved synchronization into a "ConcurrentHashSet"
- Added unit tests for the form validation (cycle detection)
- Added check that the QueueTaskDispatcher barrier was being called in
Gerrit Trigger
Merge pull request #139 from yannack/dependentGerritProjects

New functionality allowing one project's trigger to depend on others'.
Fix REST API section titles in config page

"REST" should be capitalised.

Change-Id: I9f6e3208459cc9e41e6b98f62f41f3051f4f399b
Refer to "plugins", not "plug-ins"

They are referred to as "plugins" in the Jenkins admin page,
so make it consistent with that.

Change-Id: Ie56f6a732c1377c9d7033c75463efd21f781353e
Abbreviate "Number" as "No." instead of "Nr"

"No." is the correct abbreviation in English.

Change-Id: I89376898c3d623bdd4d5d560ae7234a781895ed8
Don't abbreviate "Miscellaneous"

Change-Id: I20d541a3a5a6d14efe318a68d60d172b8a1272b0
Use consistent capitalisation for sections on settings pages

Change-Id: Ice4ecec43c165866413ccc343e8f724f8943368d
Improve help text for unreviewed patch sets feature

Change-Id: Iee0179651a63adc749b52725bdaf574cb3a55bec
Merge pull request #142 from dpursehouse/ui-tweaks

Various corrections in the UI texts