JCache improved concurrency of CacheManager and CacheProvider impls

CacheManager and CacheProvider removed sync
CacheRecordStore improved checkstyle
CacheStatistics added to ICache and impl for server mode
I think this art is broken due to a race problem on the get/create of the cacheManager. If 2 threads want to cget the cacheManager for the same arguments, then it can happen that both of the threads conclude that the if(cacheManager == null) needs to be executed. Then both of them are going to creat the HazelcastCacheManager -> consequence is that 2 cacheManager are created.

This can be problematic I believe.

One way to solve it is to create a (striped) lock and acquire that lock of the cacheManager needs to be created. After the lock is acquired; you can do your atomic get/set and you can get rid of the data-race.