Delayed approval mechanism [FIXED JENKINS-11409]

This patch introduces the possibility for a delayed approval to be sent
back to Gerrit. This is a relatively advanced use case, so the setting
has been placed in the Advanced section for the Trigger settings.
When one selects "delayed approval", the completion of the build will
NOT send an approval back to Gerrit. Instead, the triggering event stays
open, and needs to be closed later on. This can be done by using the new
post-build action "Send a Gerrit delayed approval". At the moment, this
notifier expects to read the name of the job and build number from build
variables. If these point to an existing build which has a Gerrit event
as a trigger, which has not been submitted due to "delayed approval",
then that approval will be sent. In particular, this allows to modify
the status of that build through other job (e.g., using Groovy scripts),
and mark it UNSTABLE (e.g., if a subsequent build were to fail), which
is a way one can change the result of the Approval in Gerrit.

Amends: fixed broken style and broken unit tests
Placed proper copyright
Fix deserialization issue caused by ManualPatchsetCreated class move

xstream compatibility alias was defined when the class was moved from
the gerrit-event to the gerrit-trigger but TriggerContextConverter is
not using xstream mapper. Modify TriggerContextConverter to use xstream
mapper instead of java class forName method.

Change-Id: I3280257e1740f5c0612400de4ccd0e862ace1250
Fix provider url which was always empty

Modify GerritConnection to have the gerritFrontEndUrl so it can create
provider with a url instead of creating it with an empty url.

Change-Id: I58c82892668567afc77b78f2cf2d0c616124075f
Fix changeIdAnnotator when annotating a build configured with anyServer

ChangeIdAnnotator was using the serverName configured at the job level
to find the front end url of the gerrit server but it is failing when
job is configured with "Any Server" as server name.

Use the gerritCause of the build instead to find the url of the gerrit
server.

Change-Id: I08332e788c5f23417425599d2ab60fb41fde0f92
Added unit-test, general cleanup

- Added a unit-test to lock the delayed approval mechanism in the
  "normal" scenario
- Added some output in the build console for the delayed approval
- i18n of the user facing delayed approver texts
- Did some minor code refactoring
Merge pull request #122 from yannack/delayedApprove

Delayed approval mechanism [FIXED JENKINS-11409]
Merge pull request #129 from hugares/deserialization-fix

Fix deserialization issue caused by ManualPatchsetCreated class move
Merge pull request #130 from hugares/change-id-annotator-fix

Fix ChangeIdAnnotator for "Any Server" option