Mv cache revert

This code reverts to Google's original cache implementation.  The code for cache.cc is used twice, once for a file cache and once for a block cache.  I had previously made changes that  yielded nice, incremental performance improvements to the block cache.  No real attempt made to check impact to file cache.  Recent testing shows a file cache miss has 10x or larger impact to performance compared to block cache miss.  The original Google code performs much better for the file cache.  Hence I am reverting to Google's code.

There is one small adjustment to the original LRUCache::Insert routine.  Google's code tests for "space" in the cache upon insertion of new object.  The code will delete the least recently used cache items until enough space is recovered.  This logic fails if the least recently used item is active.  The measure of available space does not change when deleting an active cache item.  The code then loops to delete  the next least recently used item.  The loop can end up deleting a large section of the file cache if the files are active in iterators.  My adjustment only deletes non-active cache items.  This adjustment was previously shipped in my cache replacement code and believed stable / tested.

The branch contains a second adjustment that changes how the file cache size is measured.  The Google code measures files by count.  This makes memory sizing difficult since each file's index block and bloom filter block can vary in size (and I have other changes that vary the size of files by level).  The code now sets the file cache's capacity to 4Mbytes times the max_file_count.  4Mbytes is a median value of samples reviewed from different levels and different datasets.  Each file added to the cache subtracts its actual memory usage.  So the number of files that actually fit in the cache can vary depending upon how file indexes and file bloom filters vary.  But the ability to accurately set the memory model is greatly enhanced / simplified.