TEPHRA-4 TransactionVisibilityFilter should support additional filtering on visible cells

This change adds support in TransactionVisibilityFilter for an additional filter to apply to visible cells.  This allows the subfilter to control the return code used for these cells (e.g. INCLUDE vs. INCLUDE_AND_NEXT_COL).

This also cleans up some filter handling and allows the TransactionVisibilityFilter construction to be overridden in TransactionDataJanitor, so that other implementations can take advantage of the additional filtering.
Filters classes are identical. Completely. Can we move it to some core module?