ISPN-3354 Multiple events on the local node with Infinispan 5.3.0-final

Also, I fixed a bug taht could cause inconsistent data in replicated
mode and added tests for that.
ISPN-3722 State transfer must be enabled for Lucene Directory if clustered caches are used
Fixed typo: hasSharedCacheLoadOrWriter -> hasSharedCacheLoaderOrWriter
ISPN-3606 FileCacheStoreConfig JavaDoc incorrectly states that 'fetchPersistentState' is only supported in 'replication' and 'invalidation' mode.
ISPN-3737 L1 requestor registered after value read

* Fixed issue with RR that L1 cached wrong value with concurrent write
* Added tests for issue as well as RR test cases
JBQA-8629 Add test for tasks.GlobalKeySetTask
ISPN-3721 Extend remote get test scenarios to test the joiner state

* Moved AbstractControlledLocalTopologyManager to main to delegate the
start and stop methods
ISPN-3335 JMX statistics for Queries do not work after adding new classes to SearchFactory

In Infinispan we use SearchFactory reconfiguration when adding new classes. This process actually builds a new SearchFactory behind the scenes which should preserve all state and config of the old one, plus the new added classes.
Unfortunatelly this does not work correctly due to HSEARCH-1461. The statistics are lost on each reconfiguration. Also the the status of Statistics.isStatisticsEnabled is lost.

This is worked around by constructing a new MBean statistics implementtion, with identical interface. The new implementation accumulates its own statistics counters and gathers current data from the current Statistics object of the SearchFactory.
ISPN-3537 Custom interceptor with Position.LAST set programmatically doesn't work
ISPN-3498 Cannot construct org.infinispan.util.KeyValuePair as it does not have a no-args constructor

* an JBossMarshaller is built under the hood for each TestObjectStreamMarshaller instance
* users need to call TestObjectStreamMarshaller.stop explicitly
ISPN-3537 Custom interceptor with Position.LAST set programmatically doesn't work
ISPN-3781 Memcached server should fail to start when expiration is configured
Documentation: correct misuses of "an"
Documentation: correct misuses of "it's"
Documentation: correct misuses of "an"
ISPN-3779 Refactor the SingleKeyNonTxInvocationContext to not inherit from an abstract invocationcontext
ISPN-3779 No need to use ContextFlag encoded in a byte anymore
ISPN-3779 Remove unused method
ISPN-3779 Remove more unused methods from EntryLookup
ISPN-3712 Pull in the optional compatibility package so that the CLI upgrade test passes