ISPN-4945 Remote removed events should not be fired when not removed

* A NPE was being thrown when using remote events, with a remove entry
event listener, and removing a non-existing entry.
* No remote removed events are thrown when nothing is removed. This
can be changed by the user with custom events.
ISPN-4957 Rebalancing "Finished cluster wide rebalance" message is not logged in INFO
ISPN-4962 Infinispan Query should not depend on Hibernate Search's logger implementation
Improve Javadocs

* and revise some exception messages
ISPN-4946 Add test for query cache config overriding
ISPN-4947 Improve externalization of ObjectFilter.FilterResult by not serializing the 'instance' member if projections are present
ISPN-4937 Add examples for indexing configuration on the server
ISPN-4965 Upgrade to protostream-2.0.2.Final
ISPN-4954 Entry Iterator can block transport thread if closed while
trying to put wait into queue

* Added timeout for offer so it won't block on queue for longer when
* shutdown
ISPN-4969 Stopping a cache will stop all KeyAffinityServices created for other caches in the cache manager
ISPN-4940 Only include the JCache beans.xml in the embedded uberjar
ISPN-4967 Deprecate ProtobufMetadataManagerMBean.registerProtofiles(String... classPathResources)
ISPN-4950 Add ability to merge defaults into Metadata passed as param

* This is required in order to be able to apply default lifespan and
max idle settings configured globally for the cache.
* To do so, a new method has been added to builder that allows a
Metadata object to be merged with the builder instance.
* By making the default metadata builder implementation use objects
for primitives, it can easily distinguish between those settings
that have been set by the user versus the builder defaults.