ISPN-4717 Add Hot Rod error codes for suspicions and lifecycle errors

* Added two new error codes for situations where nodes are suspected
and when cache or cache managers are stopping or stopped.
* This makes it easier for clients to decide whether to failover
or not.
ISPN-4717 Filter both members and segments when sending new topology

* Segments were filtered based on the content of the topology cache
which provides the endpoint information. This is not enough since
otherwise views themselves are not updated correctly, even if
segment information is.
* Instead, filter both view and segment to be sent to client.
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.