ISPN-2965 L1 and early invalidation leaves inconsistent state

* Added additional interceptor that is done on a last chance basis to invalidate L1 values that were present for the key when a write occurs.
ISPN-3418 Threads which get parked in CHMv8 won't ever be unparked
Updated Mapper demo code

    WordCountMapper:
        - Use a regular expression to parse words in cache values

    WordCountMapperEmitPerValue:
        - An alternative implementation that emits after parsing the
entire cache value to reduce the size of the intermediate results
ISPN-3357 Insufficient owners with putIfAbsent during rebalance

* Set the ignorePreviousValue flag when replicating from the primary owner, and
  respect its value on the backup.
* Also set the ignorePreviousValue flag when retrying the command, as the new
  primary owner might be an old backup owner.
ISPN-3357 Insufficient owners with putIfAbsent during rebalance

* Properly retry the command when the OutdatedTopologyException is thrown
  from a backup owner and wrapped in a RemoteException both on the primary
  and on the originator.
* Set the ignorePreviousValue flag on the command when retrying, even if
  the originator is not the primary owner.
* Keep forwarding the old way in replicated mode, and revert
  ReplCommandForwardingTest
ISPN-3366 Harden the outdated topology checks
ISPN-3357 Insufficient owners with putIfAbsent during rebalance

Set the ignorePreviousValue flag only after the check was performed.
The flag won't be set if the topology changes before the command is
replicated to the primary owner.
Move the Query DSL to its own sub-module so it can be used by both embeded query and HotRod client
ISPN-3029 IllegalMonitorStateException in LockSupportCacheStore.loadAllKeys
ISPN-3388 Support Legacy cache stores
ISPN-3173 Add query operation to base Hot Rod protocol

* Defined a QueryFacade interface which can be implemented by other
modules to provide querying capabilities via Hot Rod. Currently it
assumes as single facade.
ISPN-3173 Modify signature of org.infinispan.server.core.QueryFacade.query(..) method

* Add cache parameter
* Declare it throws Exception