Adding support for merge targets to be of a variable name.
Exposing the AbstractBuild to the BuildChooserContext to enable BuildChooser extensions to use build attributes (parameters, history, etc..) to make build selection decisions.
Add repository browser for Kiln Harmony

Fog Creek's Kiln now supports Git.  This repository browser
implementation borrows heavily from the GithubWeb and CGit browsers.
[FIXED JENKINS-17970] so that GitChangeSet IDENTITY regex can match e.g. Swedish name (utf8 with non-latin1 chars) -even when assuming latin-1; fix may be temporary if undetermined part of regex behavior changes in the future.
Merge pull request #153 from marco-miller/changeSetIdentRegexFixForSwed

[FIXED JENKINS-17970] so that GitChangeSet IDENTITY regex can match e.g. Swedish
[SECURITY] Use ACL.impersonate to avoid a race condition giving elevated privileges.
Merge pull request #150 from chrisklaiber/kiln-repo-viewer

Add repository browser for Kiln Harmony
support promoted builds
Merge pull request #146 from thomasbiddle/merge_target_accepts_variables

Adding support for merge targets to be of a variable name.
Merge pull request #149 from kphonik/chooser-context

Exposing the AbstractBuild to the BuildChooserContext
Adapt file link for GitLab 5.2

Fix the defective file link for GitLab browsers:

For older GitLab versions, there was a duplicate slash and for
newer versions the link is completely wrong. Fix both:

Old:   http://urlbase//0123456789...01234567/tree/file.name
<5.2:  http://urlbase/0123456789...01234567/tree/file.name
>=5.2: http://urlbase/blob/0123456789...01234567/file.name

Note: I do not know at which version of GitLab the new link
      format was introduced. This patch assumes 5.2.0, but it
      may be that older versions already need the new format.

Closes #JENKINS-18328
Introduced a single extension point that will cover all fringe use cases.

Configuration bloat has gone unchecked in GitSCM  for a while now, making this otherwise very popular plugin rather hard to use. This change introduces a single extension point "GitSCMExtension", from which various more specific extension points will be derived.

The user will still configure all such extension implementations in a single list, which helps us reduce the out-of-the-box UI surface while still defining arbitrary number of extension points.
added the first batch of extension implementations
collapsing intermediate extension point types
moving to a different package
split off one more extension
Properly added back code for backward compatibility
split off the class that tags a build
Desginating the refactored git-client as 1.1
As the first step, got rid of the big FileCallable blocks

This will allow me to then start merging them together