ISPN-2806 Karsten's Faster FileCacheStore implementation

* This CacheStore implementation stores cache values in a single file,
and keeps keys and file positions in memory. Max memory consumption
can be controlled via a maxEntries parameter.
* Always keep on-disk state up to date: Write changes to disk
immediately, including the cache keys. On startup, the state of the
cache store can be restored by scanning the entire file.
* Clean shutdown (storing the in-memory index on stop()) is no longer
required for persistence.

Signed-off-by: Karsten Blees <blees@dcon.de>
ISPN-2806 Rename Karsten's file cache store and add configuration

* Renamed the cache store to a more meaningful name.
* Added new style configuration and configuration builder classes.
* Modified parser to deal with new single file cache store.
* Added tests that verify single file cache store configuration.
ISPN-2608 VersionedDistStateTransferTest intermittent failure

Wait for state transfer to end before checking the results
ISPN-2515 VersionedReplStateTransferTest.testStateTransfer fails randomly

Wait for state transfer to end before checking the results
ISPN-2771 WriteSkewTest.testWriteSkewWithOnlyPut fails randomly

The test in question is performing the write skew check before the key is locked.
ISPN-2950 In distributed mode cache store data should be read through the main data owner (vs directly from the store)

* Changed ClusteredCacheLoader to only read from primary owner
* Added tests to verify non owner doesn't read from cache store
* Also fixed up cache statistics so skips aren't counted as misses
* Added some tests for invalidation with loader/store
ISPN-3109 Integration of protostream library (protobuf serialisation protocol) with hot-rod marshaller

Put and get an object from a remote cache over hotrod using protobuf as a serialization protocol for all user payload.