allow strategies to mark rows as undeletable

if another strategy subsequently tries to delete the tuple
(no transformed values returned), its previous values will
be processed further anyway

use Anonymizer.getRetainService().retainCurrentRow to mark a
row to be retained (never deleted during anonymization)

the marked rows' primary key values will be stored in tables
like SCHEMA.TABLEXYZ_RETAINED in the transformation DB

added Mockito as test dependency for ResultSet mocking