ISPN-3921 Soft-Index File Store: (local files)-based cache store

- see SoftIndexFileStore javadoc for design info

https://issues.jboss.org/browse/ISPN-3921

I will provide performance comparison with LevelDB soon.

Currently the SoftIndexFileStoreFuctionalTest#testStoreAsBinary fails, but this bug in the test (should be fixed in another JIRA). The test does not purge the cache, therefore, when it configures the ByteArrayEquality to be used and store finds String key, it passes it to the Equality and the test fails.
That's not true. The format of stored data is set, expected key lengths are < 32768, and the same holds for metadata. But you're right that variable-length encoding of lengths would be more appropriate, and we should already at least emit warning/error if the key is too long.