Fixed Compound configuration sceen not using the correct versions.
Added notification features for versions on config-page.

This patch-set adds a text field on top of the configuration
screen, that will display a warning or informational statement
about the current status of versioning.

For example, it will warn you if you are not editing the latest
version and might thus revert certain changes.
Coloring the version status, depending on warning/info content.
Fixed issue with URL encoding on rebuild-page (and others)

A rogue Apache might doubly-escape URLs, so we need to make sure that we
have a fully unescaped versioning map. Downside is, that Jenkins project
names should not contain URL-like encodings (%xy)

Also, added a size-limited LRU buffer for decoding the version map. This
should slightly speed up accessing specific versions of projects.

As a last fix, this corrects the project URLs on the rebuild page to
properly account for path contexts (i.e. http://server/context/job/...)
Force users to enter a versioning string before saving.

Also converted more Jelly to Groovy code.
Fixed several bugs:

- The warning messages for fixed parameters now evaluate correctly
- Fixed issue where invalid parameters were not detected, if the final
  build was not transient.
- Fixed aborting when a variable was declared as "must have a
  value set".
Merged in various layouting changes.

 - Converted several Jelly to Groovy files
 - Fixes to the layout of the build-flow view
 - Exchanged names like "Transient Project" with more intuitive ones.
Removed superfluous imports.
Fixed error that spuriously declared parameter classes as incompatible
Moved base project settings into InheritanceProject config.

This was done to make sure that we have full control over how
getAssignedLabel() is called when configuring.

That in turn was done to change the behaviour of getAssignedLabel() to
always return a fully inherited and cached value.

That in turn was needed to speed up Queue.maintain(), which called the
label generation far too often for Reflection being usable.
Added extended build information added to main project page.
Restored configuration for SCMs
Reduced usage of the ThreadAssocStore.

This should prevent versions from spilling from one request to another,
qhich could cause the "isBuildable()" check to fail.

Also, extended XML representation retrieval. It is not possible,
to get an XML for the current job and all its parents in one go.
You can find it under Sidepanel->Advanced Options->Get XML...
[maven-release-plugin] prepare release project-inheritance-1.5.1
[maven-release-plugin] prepare for next development iteration
Fixed issue with deriving parameters

This mainly involed reducing the complexity of deriving parameters,
by simplifying how the scope is generated. Additionally, ParameterDefinition
instances are now copied by the ISPD before the rootProperty is registered.

This should avoid cross-contamination and potential race-conditions.

Added extended logging to isBuildable() check.
Fixes Gerrit Triggers not setting inheriting parameters

Added a (currently unused) method to reflect on class names in the
stacktrace.

Reduced the verbosity of the isBuildable logging (set to FINE level)
Fixed issue with parameters being derived wrong.

When a reference to a reference was selected, the inheritance mode
(Overwritable, Extensible, Fixed) was not computed properly.

Also, the rebuild page did not derive the properties correctly, by
stripping off the "header" imported from previous runs, when the
value had been fully extended. This is also fixed now.
Enabled inheritance, when job properties are evaluated from a BuildStep

This is needed, in case a BuildStep invokes a Jenkins job.
Fix failure of parameter sanity check

When an inheritable parameter followed a non-inheritable parameter,
the parameter sanity check would fail.

This is fixed, by making the enum-value not be null in that case.