Memory optimization: Do not retain LinkedHashSets in caches

LinkedHashSets are replaced with tight ArrayLists
Memory optimization: Fewer ConcurrentHashMap.Segment instances
Merge stored empty lists and sets to singe object