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
There should be a blank line before the first @param tag; @param tags should not end with periods unless they have more than one sentence.
See http://www.liferay.com/community/wiki/-/wiki/Main/Javadoc+Guidelines#section-Javadoc+Guidelines-@param+tags

@param tx the current transaction to apply