Few collections updates / performance improvements

(Modified previous PR without Trove shenanigans, I guess I didn't get the memo)

 - Avoid allocation of Iterators when we know we have an ArrayList.
 - More optimized game time movement loop using ConcurrentLinkedQueue.
 - Random separation of concerns modifications.
 - FastMap -> HashMap in a few places
 - FastMap.shared() -> ConcurrentHashMap in a few places
So we don't allocate an unnecessary object to iterate what we know is an ArrayList.