[TEST] [JENKINS-21103] Added test case 

Added testcase for JENKINS-21103: 
"Priorities are assigned top down by first match" 
does not work correctly
The key must not be part of the value in a WeakHashMap
[JENKINS-21119] Extend loggning to show assigned priority

 * Refactored to include more information in the ItemCache.
 * Refactored to use specific transition methods rather than setter.
 * Added ItemTransitionLogger to log events in the Queue.
Merge remote-tracking branch 'jenkinsci/master'
Synchronized the QueueItemCache

Synchronized the QueueItemCache to avoid
ConcurrentModification and other side effects.
Made ItemInfo comparable
Added method to get a sorted list of all items.

Added method to get a sorted list of all items,
this also includes Blocked Items.

The method will return a sorted set of all known 
and active Items.
Updated JobGroup id now:1 was:0
[JENKINS-21119] Extend loggning to show assigned priority

Add decision-logging where the decisions taken to 
calculate the priority is more clearly shown.
Refactored to break out method getJobGroup(job)
Refactored not to use WeakHashMap
Refactored to better account for multiple starts of the same Job
[JENKINS-21119] Extend loggning to show assigned priority

Also log the name of the parent MatrixProject for a 
found MatrixConfiguration.
[JENKINS-21119] Extend loggning to show assigned priority

Avoid logging twice with fine and finer.
[JENKINS-21173] Anonymous Users Can Configure Priorities

Optionally only Administrators are now allowed
to edit Job Priorities
[JENKINS-21119] Extend loggning to show assigned priority

 * Added missing log when global default priority is used
 * Make sure to log with finer() id log-level is ALL
[JENKINS-21103] "Priorities (...) first match" does not work correctly

Since the listener is not called as SYSTEM but rather as a user
I added impersonating for all getPriority() lookups to make
sure that the code can read all Views and all Jobs.
Merge pull request #12 from emsa23/master

Towards 2.4