ISPN-2924 Update JDK8 backported concurrent classes

* Added revision numbers for each class so that they can be compared
with the CVS repository and see if any update happened since last
time they were updated.
ISPN-2281 Add a CHMv8 that calculates equals/hashCode with function
ISPN-2281 Added Comparing functions to Bounded CHM and XML/prog config

* Comparing function classes for key/values can now be defined via
XML or programmatic configurations.
* If any Comparing functions given, either ComparingCHMv8 or
BoundedCHM taking Comparing function(s) are used.
ISPN-2281 Hot Rod uses byte[] as raw key type instead of ByteArrayKey

* Added EquivalentHashSet and EquivalentHashMap collections to support
byte[] key types in invocation contexts.
* Refactored ConcurrentMapFactory to a CollectionFactory that can
create not only concurrent maps, but maps and sets, based on
equivalence configuration.
ISPN-2281 Hot Rod uses raw values with Cache taking versions

* AdvancedCache adds a couple of new methods that take metadata
as parameter. This can be used by users to provide version, and
also for server implementations to add their own metadata (i.e.
REST servers and MIME data).
* The implementation of these methods is temporary and is bound
to change in order to feed the metadata object all the way to
the cache entry.
* There's an initial stab at the compatibility testing with
initial focus on Embedded and Hot Rod server. Tests here are not
yet working.
ISPN-2281 Implement Hot Rod and Embedded compatibility
ISPN-2281 Leave only EquivalentCHMv8 and make Equivalence Serializable

* Remove CHMv8 and leave only the equivalent version
* Add putIfAbsent with Metadata so that Memcached tests pass
* Add javadocs for Metadata related additions
* Update configuration XSD and remove commented code
* Make Equivalence extend Serializable and fix tests
* Remove commented code sections
* Add missing javadocs
ISPN-2974 DeltaAware based fine-grained replication corrupts cache data, if eviction is enabled

* Add unit tests to highlight the issue with DeltaAware and eviction in replication mode.
* Made the test generic enough to be able to also test in local mode with the option of using passivation instead of eviction; the test can also use AtomicHashMap and FineGrainedAtomicMap instead.
* The eviction + replication test cases fail for DeltaAware, AtomicHashMap and FineGrainedAtomicMap.
ISPN-2974 Fix replication of delta updates for DeltaAware and AtomicMap in both eviction and passivation scenario

These fixes allow the DeltaAware and AtomicMap tests to pass but the fix is not yet complete for FineGrainedAtomicMap:

* PutKeyValueCommand must use Flag.DELTA_WRITE if the value is a DeltaAware.
* AtomicHashMapProxy must use Flag.DELTA_WRITE instead of Flag.SKIP_CACHE_LOAD if eviction is enabled.
* ApplyDeltaCommand must use Flag.DELTA_WRITE and ensure the flags are properly externalized.
* ApplyDeltaCommand must properly set the inherited 'key' field so methods getKey() and getAffectedKeys() return a valid value (ISPN-2996).
* ClusteredCacheLoaderInterceptor.forceLoad() must also check if this is a delta write (similar to ClusteredActivationInterceptor).
* ClusteredActivationInterceptor and ClusteredCacheLoaderInterceptor must correcly determine the primary data owner in REPL mode instead of assuming the coordinator (ISPN-2988).
ApplyDeltaCommand getDeltaAwareKey() vs getKey() refactoring

* Method getDeltaAwareKey() is just an alias for the inherited getKey() so it can be removed
* Class ApplyDeltaCommand.DeltaCompositeKey needs an externalizer
ISPN-3001 DeltaAwareCacheEntry.getLifespan() and getMaxIdle() return 0 and cause instant expiration

These should actually return -1 for infinite lifetime.
Otherwise LocalDeltaAwareEvictionTest.testFineGrainedAtomicMap(), ReplDeltaAwareEvictionTest.testFineGrainedAtomicMap() and ReplDeltaAwareEvictionTest.testFineGrainedAtomicMap2() fail because the entry is already expired when it is fetched by the loader.
ISPN-3056 FineGrainedAtomicMap updates are lost on some cluster nodes when eviction or passivation is involved

* CacheLoaderInterceptor does not properly handle ApplyDeltaCommand; it should call loadIfNeeded() to ensure data is properly fetched from loader if it was evicted from data container. The loaded entry must be wrapped using EntryFactory.wrapEntryForDelta() instead of wrapEntryForPut().
* CacheStoreInterceptor.StoreModificationsBuilder must visit ApplyDeltaCommands and ensure special handling for DeltaAwareCacheEntry to store the yet uncommmited changes rather than the value because the context entries are not yet committed at this point due to the order of interceptors.
* EntryFactoryImpl.wrapInternalCacheEntryForDelta must ensure the created DeltaAwareCacheEntry wraps a mutable context entry rather than an immutable internal entry that does not do anything on commit().
* DeltaAwareCacheEntry must merge the deltas and mark the wrapped entry as changed BEFORE asking the wrapped entry to commit.