ISPN-3459 Add support for Cache-Control http header to REST server
ISPN-3200 Allow KeyFilters to be applied to listeners and ISPN-3201 Allow listeners to be invoked only by a primary data owner

Combined into a single commit since both commits affect the same code in AbstractListenerImpl
ISPN-3464 Remove optional dependency in infinispan-query
ISPN-3463 Ensure persistent data removal before or after the test
ISPN-3318 Automated upgradable path for file store consumers

* Remove SingleFileCacheStore and related files and ported the code
over to FileCacheStore.
* Old FileCacheStore logic moved to BucketFileCacheStore which is
package private in order to avoid instantiation.
* FileCacheStore can now detect old bucket-based data structure and
it can upgrade it, providing a backup for the old data.
* Backup is still accessible, by enabling the deprecatedBucketFormat
configuration attribute, in which case the old bucket-based
FileCacheStore is used.
* In order to avoid having to replicate the configuration hierarchy
for the old, bucket-based cache store, created a delegate cache store
which delegates to the correct cache file cache store (new, or bucket
based), depending on whether the deprecatedBucketFormat flag was
enabled or not.
* This is not ideal and in fact I suggest some alternative solution
as comment in the code.
ISPN-3456 Make the REST delete command return a 404 in case the entry does not exist
- Also add helpers to create an embedded REST server for dependent modules
ISPN-3458 Move the HotRod target migrator to the remotecachestore
- Also drop the upgrade-tools module as its become useless now
ISPN-3018 Server side support for REST Rolling Upgrades
Reducing AbstractClusteredWriteSkewTest.testSharedCounter duration

* looking at the logs in CI, it looks the test is taking too
long.
* both threads stop after incrementing the counter until 100
ISPN-3436 Added bulk data handling tests for compatibility mode
ISPN-3436 Implement type conversion for keySet and entrySet operations
ISPN-3430 Add tests for cache listeners in compatibility mode
ISPN-3430 Some server cache calls should skip listener invocations

* Some cache operations in the server help optimise or gather
information for the operation being called, and hence should not
have an impact in the cache listener expectations.
* Doing this keeps server cache listener invocation expectations
in line with embedded cache.
ISPN-3464 Remove optional dependency in infinispan-query
Refactor MultiHotRodServersTest to allow subclasses to modify the configuration of the HotRod client
Extract the reusable part of TypeConverterInterceptor into a base class so it can be used by remote-query module
ISPN-3175 Upgrade the java hotrod client to support remote querying

* Add remote-query module and QueryFacade implementation
* Remove the checked exception declared by QueryFacade.query method
* KeyTransformationHandler should provide default support for byte[]
ISPN-3472 Declare modules required by remote-query to the BOM

* Also make sure the RemoteCacheManager looks for resources using its own classloader
ISPN-3475 Split remote-query module into separate client and server modules

Separating the modules rather than having them in one place and generating a separate assembly for client has the benefit of also separating dependecies and relieving the client from dealing with unneeded dependecies.
ISPN-3476 Remove dependecy to 'protoc' tool

The protobuf binary descriptor is directly included in the project as a resource instead of being generated.
This is a stopgap solution until we find another way of parsing proto files that does not involve the use non-java build tools.