ConcurrentLinkedHashMap for layer cache

 Use ConcurrentLinkedHashMap for layer cache to allow for LRU aging and eviction of stale cache entries