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-4966 The <backups/> element should be a sub-element of all cache-types, not just clustered caches
Update locking documentation

* added how it works in clustered caches
ISPN-4970 AvailabilityException and AvailabilityMode are in the wrong package
ISPN-4970 AvailabilityException and AvailabilityMode are in the wrong package

Move the impl package as well
ISPN-4981 Update to Hibernate Search 5.0.0.Beta2
ISPN-4981 Spatial Query updated API: onCoordinates -> onField
ISPN-4902 Unsupported Class Version Error when running testsuite with JDK6

Update documentation.
Clean up generics a bit