Sorter now caches more info about Queue.Item

 * Cache moved to new class (QueueItemCache)
 * Cache uses WeakHash to cache data after item left Queue
 * Caches more info about the item to minimize need for re-lookup
(ItemInfo)
Added PrioritySorterPLugin and moved initialization

All initialization is now done from the PrioritySorterPlugin
this includes legacy check and initial queue sorting.
Refactored MatrixBuild priority lookup to use QueueItemCache