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
ISPN-3518 1PC can cause a window of inconsistency with L1 invalidation

* Changed 1PC L1 invalidation to be synchronous for invalidation in tx cache
* Also change L1LastChanceInterceptor to be sync in tx cache
* Added tests for 1PC TX as well
ISPN-3556 When LockControlCommand fails on an owner, the rollback command is not sent

* small issue with Pessimistic transactions but it works fine with Optimistics
transactions.

* refactor ControlledRpcManager and created a base abstract class for it.
ISPN-2475 When L1.onRehash is enabled, L1 invalidations should be sent
to the previous owners

* Changed L1 on rehash to properly add requestors for previous owners
* Reenabled tests for L1 on rehash to confirm working
* Removed unneeded looping in InvalidateL1Command as track modified keys
ISPN-3396 Added different classloader test