ISPN-4377 Make receiving state option for Hot Rod remote events

* Add attribute to @ClientListener annotation to decide whether
to send back state to clients when adding listener or upon
failover.
* Refactored Hot Rod server event log listener to add assertions
to the listener itself.
* Added missing javadoc to @ClientListener.
* Modified addListener protocol operation to support optional
inclusion of state.
* Updated Hot Rod protocol 2.0 specification to add new flag
for addListener operation.
* Updated Hot Rod client documentation to specify how include
current state functionality works both when adding a new listener
for the first time, and upon failover.
ISPN-4689 NumOwnersNodeCrashInSequenceTest random failures
ISPN-1261 Implemented missing CDI events
ISPN-4563 Create unit test to replicate concurrency issue

Change-Id: Id381cc57965b8520111ad5337c619d8d9b4e75aa
ISPN-4563 Fixed comparing configuration in JCacheManager
ISPN-4563 JCache createCache/getCache synchronized in cache resolver

* This applies only to the DefaultCacheResolver, which sticks to using
standard javax.cache mechanisms to find cache managers in the system.
As a result of this, the class limits itself to using purely
javax.cache APIs, which is why synchronization is required.
* This fix is not required for the InjectedCacheResolver because this
one is based around the fact that you're in an environment where you
are injecting Infinispan CacheManager instances, and hence the cache
resolver can wrap those with whatever it wants. In fact, it directly
uses JCacheManager concrete class, allowing it to call configureCache
method which really acts like a getOrCreate method in a safe way.
* The changes in DefaultCacheResolver are needed because
resolveCache() could be called concurrently, so given the limitations
of createCache/getCache, synchronization is needed to guarantee
correct behaviour.
* JCache API specifies that createCache() returns an exception if
the cache name is alreadyd defined. It would have been better for it
to return the Cache itself if present, since that way synchronization
would have been responsibility of the JCache provider.
ISPN-4563 Rename configureCache to getOrCreateCache in JCacheManager

* The new name better represents the conditional side of this method,
which is way more useful for JCache end users. Unfortunately, since
this method is currently only present in a concrete class, its
usability is a limited.