Fixed a concurrency issue causing scores to be null.
Added cache, performance increased by magnitudes
replaced cache implementation (ConcurrentLinkedHashMap)
with J.U.ConcurrentHashMap. Performance is nearly identical
but no external dependencies
Refactored cache in trait for re-use
Started new MapReduce impl,