CDK-347. Implement DatasetTarget#handleExisting and WriteMode support.

The return value catches whether there was data to delete, but what I'm talking about is the UnsupportedOperationException that deleteAll can throw if the delete can't be done cleanly -- in the FS case, aligned to partition boundaries. If that happens, then there is a problem because we need to overwrite, but the job can't actually do the delete. If there is no data we can ignore it and move on, but if there is data we should have a clear message about why the job can't be completed and probably stop processing.