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-3651 Allow @Listener classes to be non-public

It's better not to impose such a restriction.