enhance performance of removeFields command
CDK-484: Clean up Registration and Datasets.

This cleans up the separation between the Registration and Datasets
classes. Registration handles URI matching and returns DatasetRepository
objects. Datasets handles any other operations that use those
repositories and the data. Load and view are now one method that returns
the appropriate object based on the URI.

This also expands Datasets, adding create, update, and delete methods
that call the appropriate method on the repository responsible for a
given URI. This is to enable the CLI to use Dataset URIs, solving the
problem of how to use more than one repository for CLI operations.
CDK-484: Add Datasets URI tests and Datasets#exists.

This also fixes inconsistencies in how view URIs are handled. Create or
load operations will return View objects for view URIs and create will
create the underlying dataset correctly. Delete, update, and exists will
reject view URIs with an IllegalArgumentException. Update applies to an
entire dataset, so it doesn't make sense to allow it to be applied to a
view. Delete and exists could be applied to views in the future, but
this is not implemented (and may not be)