Create a unit test to verify that compactions reuse existing cached blocks but do not thrash the cache with newly read blocks. Also need to verify that we only read every data block once, e.g. that we don't re-read the block on every next() operation.
HBASE-1597 did not seem to include a unit test, so we need to add a test now. This and HBASE-4683 (the unit test that was not checked in) are the remaining missing pieces before we can close HBASE-3976.