TEPHRA-43 TransactionVisibilityFilter can prematurely drop delete markers

This fixes all versions of TransactionVisibilityFilter so that we only drop "delete" tombstones (Puts with empty values) when all store files are being read at the same time.  Makes the following changes:
* adds a flag to TransactionVisibilityFilter, set when doing a user scan or major compaction
* adds a test case that verifies "delete" tombstones are kept after a memstore flush
```
@param ttlByFamily map of time-to-live (TTL, in milliseconds) by column family name
@param allowEmptyValues whether cells with empty {@code byte[]} values will be returned; if {@code false}
                        these will be interpreted as "delete" markers and the column will be filtered out
@param clearDeletes whether this filter should drop "delete" markers (only safe to do when reading all store
                    files such as during major compaction)
```