CDK-736: Metadata will not be removed, after dataset is merged.

The problem is that repositories are responsible for deleting datasets via `MetadataProvider`. That's not an task that cleanly fits in `Dataset`. I think the solution is that merge should be a `DatasetRepository` operation, not a `Dataset` operation. Right now, merge leaves the dataset in a weird state: all of its data has been moved and it is ready to be deleted, but it still exists because it doesn't know about the `MetadataProvider`. If the merge were a repository operation, then we could have a `mergeAndDelete` as you suggest.

Another benefit to moving this to the repository is that in other work, it was inconvenient to check whether the dataset is `Mergeable`, when we really care that the repository produces `Mergeable` datasets. This came up in #199, where the target dataset doesn't yet exist but we need to know which output committer to use (see [line 522](https://github.com/kite-sdk/kite/pull/199/files#diff-fba44dac726ba4b54d4fd8e2c3f5538eR522)).