Core: use ConcurrentHashMapV8 for lower memory overhead

In Java8, ConcurrentHashMap has lower memory overhead.  We are on Java 7 but can cherry-pick the Java8 impls from Doug Lea's jsr166e work.  In addition to CHMV8 I had to pull in some other deps from jsr166e ... I'm not certain they are all required (i.e., they may work with the Java 7 versions?) but I wanted to be safe.

I also fixed a couple places to use ConcurrentCollections to create a new CHM rather then instantiate on their own.