TEPHRA-9 Use transaction filter instead of wrapping scanner on flush and compact

This replaces use of DataJanitorRegionScanner (which wrapped the InternalScanner used on flush and compaction) with use of TransactionVisibilityFilter using the latest transaction snapshot's state.  In order for cells needed by in-progress transactions to remain visible, this also adds an IncludeInProgressFilter, which simply removes cells belonging to invalid transactions from anything appearing above the visibility upper bound.

Overall this simplifies the code, and makes it so that flush and compaction filtering correctly works with the ability to use a sub-filter for visible cells.

In addition, I cleaned up a few issues with the TransactionProcessorTest test.
is this the same as preCompactScannerOpen(e, store, Collections.singletonList(memstoreScanner), ScanType.MINOR_COMPACT,  HConstants.OLDEST_TIMESTAMP)? Seems like its almost duplicated code