Patch Set 1: I would prefer that you didn't submit this

This is a simple proof of concept to see if the idea of using RandomAccessFile to read from the base when applying a delta is suitable.  If it is we need to add robustness checks to validate the base isn't corrupted, and we need to have some sort of mechanism to clear out less useful entries from the cache.