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)
Configure event sender as an async Listener

* Ordering is only guaranteed as long as the async listener executor
is configured with 1 thread, which is the default.
* By using async listener, construction of the event and sending it
is taken out of the critical path of the Hot Rod client request.