ISPN-2956 Hot Rod conditional operations and transactional caches

* Transactional caches are required in order to be able to guarantee
correct retry logic for Hot Rod operations relying on conditional
operations, or operations where the previous value is returned.
* WARN messages have been added for when conditional or operations
needing previous value are executed against non-transactional caches.
* Documentation updated with a section on Java Hot Rod client failover
capabilities and its effects on conditional operations.
ISPN-4424 Guarantee correctness of getCacheEntry for replace in Hot Rod

* When calling replaceIfUmodified, if a transaction manager available,
call the entire method withing a transaction and make getCacheEntry
use FORCE_WRITE_LOCK in order to guarantee the cache entry being
fully constructed with the right values and not partially applied.
* Return an immutable cache entry view to the client, whose values
are initialised in construction as opposed to delegating to the
underlying mutable cache entry.