Fix for ISPN-3877 - SingleFileStore continues to consume space on the di...

This is a pull request for issue ISPN-3877 - SingleFileStore continues to consume space on the disk even if the free entries at end of the file are not in use. This space can be released back to the filesystem.

We have enhanced the purge logic to look for any free entries towards the end of the filestore.
If they are found, then are removed and file is truncated releasing any space acquired from the file system.

This is very useful for usecases where there is a burst of data that is needed to be stored in the cache temporarily.
Once the data is no longer required, there is no need to hold on to a lot of space from the file system.