The core elements of HBASE-2037: refactoring flushing, and adding configurability in which HRegion subclass is instantiated