WiP: Add support for triggering jobs on the change-merged event

Added a new event ChangeMerged to encapsulate the change-merged Gerrit
event, and added a new class GerritTriggeredEvent from which all event
classes are now derived.

Existing code is refactored to use GerritTriggeredEvent instead of
PatchsetCreated.

Since not all Gerrit events can be scored, extended the GerritEvent
interface to include a new method isScorable.
Add triggering on comment-added.

Add new CommentAdded event class.
Add config option to trigger on comment-added event with a specific vote
category and value, ie, trigger on CRVW 2 (approved code review).
Fix problem with config screen not correctly displaying selected trigger.
Change TriggerContextConverter to use GerritTriggerEvent superclass
rather than PatchsetCreated event.
Update build-config dependency versions.

Update to 1.2.5-SNAPSHOT.

Fixes https://issues.jenkins-ci.org/browse/JENKINS-12824
Use event as key in BuildMemory.

Removes PatchSetKey class which was used as the key to a build memory.
Replaces it with simply using the event as they key (a custom comparator
is used to ensure that the java.lang.Object hashcode is used as the key).

Also add the hash of the event as an extra build parameter.  This allows
otherwise duplicate builds to be scheduled.

Together, these changes ensure that every Gerrit event triggers a full
complement of the jobs that are listening for it, all of them are
scheduled, and all of them report back to Gerrit as a unit, even if
multiple events of the same type and for the same change arrive.
Add uploader field back to PatchsetCreated.

Add GERRIT_EVENT_ACCOUNT* parameters to build, which represent the
account info of the person who uploaded/authored/abandoned, etc.,
whatever caused the event.
Fix copyright/author notice on CommentAdded
Add Approval DTO.

CommentAdded has Approvals now, which are checked in GerritTrigger before
scheduling builds triggered by CommentAdded events.
Add findUploader back.

Restore behavior expected by test suite with regard to patchset.uploader
or event uploader being null.
Checkstyle fixes
Remove readObject.

We don't need to fix up the attributes after deserialization, we just
need the old field marked transient and the deserializer won't complain.
Fix comment added implementation.

Typos from refactoring.
Add RefUpdate event type.

Many parts of the code assume that an event has a non-null change attributes.
Ref-updated events don't so add checks to see if change is null throughout the plugin.
Merge branch 'trigger-on-comment-added-2' into trigger-on-ref-updated-2

Conflicts:
	gerrit-events/src/main/java/com/sonyericsson/hudson/plugins/gerrit/gerritevents/dto/GerritEventKeys.java
	gerrithudsontrigger/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java
	gerrithudsontrigger/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java
	gerrithudsontrigger/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerParameters.java
	gerrithudsontrigger/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTest.java
	gerrithudsontrigger/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/mock/DuplicatesUtil.java
Style fixes.
Improve Japanese translation

Fix difference between page content and help one.
Merge branch 'trigger-on-ref-updated-2' of github.com:jeblair/gerrit-trigger-plugin into jeblair-trigger-on-ref-updated-2

Conflicts:
	gerrit-events/pom.xml
	gerrit-events/src/main/java/com/sonyericsson/hudson/plugins/gerrit/gerritevents/dto/events/PatchsetCreated.java
	gerrithudsontrigger/pom.xml
	gerrithudsontrigger/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ParameterExpander.java
	gerrithudsontrigger/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ToGerritRunListener.java
	gerrithudsontrigger/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java
	gerrithudsontrigger/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java
	gerrithudsontrigger/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/PatchSetKeyParameterizedTest.java
	gerrithudsontrigger/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTest.java
	gerrithudsontrigger/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/mock/DuplicatesUtil.java
Merge pull request #22 from rinrinne/ja-trans-0409

Improve Japanese translation
Backwards compatibility fixes.

Fixed some loading issues with old builds.

Change-Id: I55fd52005a5c55fda0f360db50385720518108ba
Make patchset revision available as parameter in verified commands

The patchset revision is made available as a parameter in the commands
that are run when the build is started/successful/unstable/failed.

Also fixed a few typos.
Fix behavior of canceling old patch sets

There were several problems with canceling jobs created by old patch sets
when new patch sets are uploaded.

We were removing old jobs when scheduled() was called, but then removed()
was also called, which would cancel the newly-added build we care about.
Instead, we now store the PatchsetCreated event to track the jobs, and
cancel all jobs for a particular Change # when a new patch set is uploaded
but only remove the exact job when remove() is called.

There was also a problem in calling Future.cancel(), as documented in
https://issues.jenkins-ci.org/browse/JENKINS-13829.  This was worked around
by storing the parameters used to create each build and canceling jobs with
the same parameters.  This is more in-line with how jobs are canceled from
the Web UI.