ISPN-3648 Inconsistent L1 in tx distributed cache

* Changed backup owners to also invalidate L1 like non tx caches
ISPN-3635 Out of data read after write on node losing ownership
ISPN-3674 LuceneStoreConfiguration should be renamed to LuceneLoaderConfiguration
ISPN-3683 CacheLoaderException should be renamed to PersistenceException
ISPN-3681 enhance the documentation of the new persistence API

* better user documentation
 ISPN-3682 remove ByteBuffer.getStream
ISPN-3657 L1WriteSynchronizer exception on L1 write race

* Fixed race condition with multiple gets and an invalidation write
ISPN-3678 In replicated mode writeSkew check is executed only on coordinator

When we changed the replicated mode, the lock owners started to be distributed
between the members in the cluster, but the write skew check was only
performed in the coordinator.
ISPN-3589 StackOverflow in InternalMetadataImpl.Externalizer
ISPN-3583 When indexing is enabled but Query module isn't available configuration validation should fail

Reviving this commit after it was reverted by d6725ad00fcdfba6cc171db912ec2297f413f0ef
ISPN-3583 Use the proper classloader so this Query config validation can work in server too

If no classloader is specified then use the defining class loader of the current class. Previously, the classloader of Util class was used, which corresponds to commons module and consequently fails to load classes from query module.
ISPN-3583 Throw exception if 5.2 config activates indexing but query module is missing from class path
ISPN-3687 Upgrade to Apache Lucene 4.5.1
ISPN-3597 ClusterRegistry should provide event notifications

* Add methods addListener, removeListener
* Also add containsKey convenience method
Refactor ProtobufMetadataManager to use ClusterRegistry
Move method ProtobufMetadataManager.readStream to commons Util
ISPN-2143 Improve how different indexed caches sync up on new indexed types

* The known classes are no longer kept in a map in QueryInterceptor. They are added in the ClusterRegistry instead (in a unique scope per cache) so the information is automatically disseminated in the cluster.
* As a consequence, IndexUpdateCommand does not need to propagate the known classes info, this is already taken care of.
* QueryInterceptor.getKnownclasses method is removed as it's no longer needed
ISPN-2143 Reorganize fields in class
ISPN-3651 Allow @Listener classes to be non-public

It's better not to impose such a restriction.
JBQA-8509 - Fix ISPN code coverage profile