ISPN-2054 isPre=false events now happen *after* cache has been updated

* Before this fix, isPre=false event notifications had no guarantees
that the events were received after cache had been updated, leading
to potential issues with cache state assumptions.
* This now has been fixed for cache entry created, modified, evicted
and removed events.
ISPN-2690: Removed Serializable and updatd internal externalizer table to reference CHF Externalizer implementations.
ISPN-2707 Trace log in EntryWrappingInterceptor hardly slows down ST
ISPN-2700 Fix Scala compiler warnings
ISPN-2704 Check async store state for stop before wait for new state
ISPN-2326 c3p0 not part of the release

* c3p0 dependency was ignored by maven assembly plugin because this dependency is referenced by multiple modules, in multiple scopes (including test scope). The processing order of modules (and their dependencies) becomes important because only the first one is considered, so if that happens to have 'test' scope it won't make it into the distro.  This is a consequence of a broader issue/limitation that is already documented in the plugin user guide and to overcome it we should avoid multiple moduleSets (not doable). The current solution consists of adding a FIRST moduleSet that aggregates all jar deps in 'proper' order and removing dependency processing from existing moduleSets.

* Made some trivial changes in bin.xml assembly to reduce the amount of text differences to all.xml (bin.xml is a subset of all.xml and any irrelevant differences should go away to simplify maintaining them in parallel)

* Force dependency resolution for commons-codec and commons-collections to use a global common version (otherwise they would diverge)

* Remove some duplicated dependencies in spring/pom.xml and  cli-server/pom.xml.
ISPN-2711 NPE in StateConsumerImpl.addUpdatedKey and isKeyUpdated

updatedKeys can be set to null by another thread that calls stopApplyingState() between the initial null check and the actual access leading to NPE. To guard against this it is enough to grab a local copy of the reference.
ISPN-2705 CLI XSite commands: select current cache when no cache name
specified
ISPN-2706 Minor help fixes
ISPN-2545 Explicitly add the slf4j-log4j12 implementation to the test dependencies to avoid issues with IBM JDK
ISPN-2716 Upgrade to Hibernate Search 4.2.0.Final
ISPN-2683 AS7.x modules packaging
ISPN-2439 Deadlock in Map/Reduce tasks

* Make sure the cluster is started before using the intermediate cache
ISPN-2300 Revert changed flag for entries where conditional ops failed

* Changed cache entry flagged was overloaded to mean that both that a
new entry had to be stored in the cache, and that a entry loaded from
the cache store had to be stored in the cache.
* Changed now represents a change, so a cache entry whose value in
memory is going to change as a direct result of the cache operation,
i.e. when the conditional operation succeeds.
* Loaded means that a entry was loaded from the cache store and needs
to be stored in the cache, i.e. when a conditional operation requires
comparing the old value which is present in the cache store, and if
the condition fails, the value in the cache store still needs updating
in the cache.
ISPN-1583 Avoid delegate advanced caches wrapped parameters

* Such parameters are flags or classloaders.
* By adding an interface that generates wrap objects, abstract
delegate implementations can pass on caches with flags or cache
loaders while keeping these wrapped.
* This avoid the problem of unwrapping a wrapper while keeping
hold of the given flag/classloaders.
ISPN-2725 Upgrade to JGroups 3.2.6.Final
ISPN-2632 Added asymmetric cluster tests for Hot Rod server/clients

* Indirectly fixed the replication queue configuration issue that
was noticed as part of ISPN-2335.
ISPN-2656 Support RemoteCache.keySet().  BulkGetKeysBulkGetKeys operation in HotRod.
ISPN-2405 Pessimistic transactions can leak locks when cluster topology changes

* In PessimisticLockingInterceptor.visitLockControlCommand there is an optimization to avoid remote calls if the key is local. Unfortunatelly this had the unintended side effect of not adding the locked key to TX.afectedKeys collection if the key was local which resulted in the key not being unlocked on TX end.

* BaseRpcInterceptor.shouldInvokeRemoteTxCommand() and AbstractEnlistmentAdapter.mayHaveRemoteLocks will return true if the TX was started in an older topology than current, regardless if modifications or remote locks are present. This ensures the TX command reaches all locked key owners not just the ones registered in TX.getRemoteLocksAcquired() which can become out of date after rehashing.

* RpcManagerImpl.getTopologyId() should return -1 instead of throwing NPE if the cache has not joined yet (ie. during preloading)

* Add unit test for the pessimistic locking case.

* Minor cleanup in the existing UT for optimistic locking.
ISPN-2366 Rename state transfer config option 'waitForInitialStateTransferToComplete' to 'awaitInitialTransfer'

* The previous name was not choosen well.

* Revised javadoc and XSD documentation for this config option to higlight the consequences of turning it off.