Avoid using ConcurrentSkipListMap.size().

The performance of ConcurrentSkipListMap degrades as the size of the map
grows. Favor a volatile integer containing the size of the map for
performance reasons.

Before: Tests run: 1, ..., Time elapsed: 780.74 sec
After:  Tests run: 1, ..., Time elapsed: 48.716 sec
Merge pull request #1 from pkwarren/speedup

Avoid using ConcurrentSkipListMap.size().