Move location choice for FS datasets into the repository.

This is to enable temporary datasets, where the MetadataProvider is not
used. The FS MetadataProvider no longer sets the location, this is done
by the FS DatasetRepository. The repo will still use a different
location if the provider overrides the incoming location, which is the
case with Hive.
Update dataset script, remove HCatalog and add MR 0.20.

Jobs fail on CDH 4.x unless the hadoop-0.20-mapreduce libs are in the
classpath when using the old JobTracker. This also works on CDH 5.x,
so it is the current default. The script will fall back to
hadoop-mapreduce libs if hadoop-0.20-mapreduce is not found.
Fix Hive MetaStore URI handling.

The hive.metastore.uris property is set in hive-site.xml, but the Loader
and HCatalog class were checking the property before creating a HiveConf
that reads the hive-site.xml file. This prevented the environment's
MetaStore URI from being loaded.

HiveConf is now required in the Loader to initialize URIs correctly, but
this caused test failures kite-data-mapreduce because the MR tasks did
not have Hive jars in the classpath. This commit adds dynamic resolution
of HiveConf so that the hive URIs will not be registered if it can't be
loaded without failing registration for all implementations.

This also updates the logic to fail rather than warn if a local
MetaStore is being used because the local MS is only for testing. To
avoid this failure, this commit introduces the property,
kite.allow.test-metastore to override the new behavior and adds a
hadoop-site.xml file to the test resources that adds it to the test
environment. (Use hadoop-site.xml because hive-site.xml breaks Hive.)
CDK-192: Add TemporaryDatasetRepository for MR.

This updates MR to use datasets from a temporary repository rather than
datasets in the target repository for temporary MR records and files.
Otherwise, jobs writing to Hive will create a dataset for each reduce
task attempt, which all send partition updates.

This introduces a TemporaryDatasetRepository and a
TemporaryRepositoryAccessor so that repository implementations can
supply a more appropriate repository. FS datasets return repositories
rooted in .temp/ underneath the repository's root directory, and Hive's
temporary repository does not interact with Hive.
Fix missing dataset URI prefix bug.
CDK-192: 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.
Fix a bug in hive managed URI construction.
CDK-192: Update CLI to use Dataset URIs.

This enables the copy command to work between repositories.