CDK-666: Update cleanHive methods for additional cases.

The cleanHive methods were failing in tests in certain cases, so this
completely cleans the MetaStore.
CDK-633: Add location handling to Datasets methods.

To enable Hive URIs to set the dataset location using URI parameters,
this adds handling in Datasets.create that passes a "location" URI
option as the descriptor location. This does not override the location
in the descriptor if it is already set.
CDK-633: Use first dataset URI as canonical form.

This updates the repository pattern to dataset pattern mapping so that
new dataset URIs for a repository URI will not replace existing ones.
The result is that when a repository URI is looked up by URIBuilder to
get the corresponding dataset URI pattern, the first registered pattern
will be returned rather than the last. This makes registration produce
URIs in the form expected with existing precedence (patterns registered
first are matched first).
CDK-633: Add simpler Hive URI patterns.

This updates Hive's URIs so that the following are valid:
* dataset:hive:name (default namespace)
* dataset:hive:namespace/name
* dataset:hive://ms-host/name (default namespace)
* dataset:hive://ms-host/namespace/name

These URIs were previously valid external URIs, but have been
repurposed. This is safe because the new patterns only match one or two
path components. Existing absolute path URIs are still valid and behave
the same way (the tests have not changed). The relative URI patterns
still load the correct dataset because existing datasets must be either
default.name or namespace.name in the Hive MetaStore. The URIs that have
changed are tested in TestHiveDatasetURIsCompatibility. The URI patterns
are tested, but the host to metastore URI is not because that is covered
by existing tests.

This required adding namespace backward compatibility (checking the
defualt namespace when no table is found) to the managed provider. The
implementation was to merge the working methods from the external
provider into the abstract provider where they are used for both managed
and external.