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

Here's a different thought:

I think the concept of writing to arbitrary views is itself awkward.  I don't really get the use case for writing to a target like "view:hive:/person?lastName=Smith".  It seems to me the usual targets for writes would either be:

* the entire dataset, in which case the implementation directs the data being written automatically to the correct partition

* a specific partition, but only when you start allowing partition on fields outside the Entity (per CDK-446).  A partition target where the partitioning is based on Entity attributes doesn't make sense to me as you might as well just use the base dataset as the target and let the implementation land the data in the right place.

If those were the only allowed types of write targets, implementation would be much simpler.

Perhaps there is something I am missing that explains why support for arbitrary views as targets makes sense.  It makes total sense to me as a source on the read side but I don't get it as a target for a write.