Conditionally enable read-driven compaction.

For workloads with high write volume, read-driven compaction is wasteful and
produces very poor compaction.  For high-read workloads, read-driven compaction
pushes the system to a better, faster state for reads.  This cheap hack enables
read-driven compaction only after a sufficient number of read operations occur
uninterrupted by writes.
Add a ReplayIterator.

Careful use of the timestamp methods and the manual_garbage_collection option
will enable an application to track new writes as they come into the system.