Add DynMethods support for hidden implementations.

The new hiddenImpl builder method will get a declared method (which may
be private) and attempt to set it to be accessible.
CDK-549: Add DoFn transform to copy and import commands.

This adds --jar and --transform options to the copy and import commands.
The jar option will add a jar to the distributed cache and the current
classloader. The transform option is the name of a DoFn class that will
be instantiated and used to transform GenericRecord objects. It must
produce GenericRecord objects.
Add configurable ClassLoaders to dynamic helpers.
CDK-549: Use new ClassLoader for user-supplied transforms.

Before this, the addJars method was invoking addURL on the current
loader, which is a hidden method and isn't allowed on secure JVMs. This
commit uses the ClassLoader handling from obj-schema to load the
user-supplied transform class and create a TransformTask. This also adds
a addJars method to the TaskUtil configuration helper.
CDK-549: Add class validation for transformed values.
CDK-549: Add tests for transform DoFns.
CDK-549: Improve error message when DoFn cannot be loaded.
CDK-549: Revert changes to copy, add transform.

This adds a "transform" command to transform records via copy from one
dataset to another. The copy command is now purely a copy.
CDK-579: Add kite.uri option to maven plugin.

This deprecates repository URI and dataset name by adding a kite.uri
option for a dataset URI. If the dataset URI isn't present, then the old
behavior is used and a warning is logged.
CDK-579: Remove namespaces from maven plugin calls.

This was cherry-picked from a version with namespaces.
CDK-140: Fix bugs in URIPattern.

1. Opaque patterns should not match non-opaque URIs

This was causing the relative URI patterns to match non-relative cases
by consuming the host. The non-opaque pattern did not match becasue
there were too few path components, but the opaque/relative version did
match because the authority section was consumed as part of the relative
path.

2. Lone glob pattern should not match an ending /

The file:/*path URI was returning path="" for file:/ even though there
is no path component. This caused reconstructed dataset URIs to have an
extra /: file://namespace/dataset
CDK-140: Add namespaces to kite-data-core.

This adds namespaces to the DatasetRepository interface and the
FileSystem dataset implementation. Existing tests in kite-data-core are
passing, but not all test cases have been updated to correctly test
namespaces.
CDK-140: Add namespace to PartitionListener.
CDK-140: Add namespace to dataset name compat check.
CDK-140: Fix requested location in provider test.

Hive attempts to create the location, so it needs to be a valid
location with the minicluster's authority section.
CDK-140: Update Hive for namespaces.

Managed datasets use the same URI pattern, with an added default for the
namespace option, "default". External dataset URI patterns now have a
required namespace part of the path. This will currently cause external
table lookups to fail unless the containing folder is named default.

Major changes are:
* Added createDatabase(String) and getAllDatabases() to HCatalog
* Refactored list into namespaces() and datasets(String)
* External datasets now correctly respect requested locations
CDK-140: Add backward-compatibility for Hive external datasets.

This adds a method that resolves the namespace that should be used. The
requested namespace is always used if the table exists in that
namespace. Otherwise, the default namespace is used if the table exists
in the default namespace and its location is where the data would have
been stored if the table was created before namespaces.

This moves the FS update descriptor checks into Compatibility so that
those checks can be used when creating a new table that is backed by
data from a table created before adding namespaces. Create in a new
namespace succeeds if the descriptor is compatible with the existing
data.

Error messages in HCatalog are also more helpful and include db and
table names.
CDK-140: Update HBase to pass namespaces.

HBase doesn't currently support namespaces, this just updates the API.
Any namespace that isn't "default" will be rejected. This will be the
behavior for HBase versions before 0.96, and support for table
namespaces should be added for 0.96 and later.
CDK-140: Add namespace support to MR and Crunch integration.
CDK-140: Add namespace option to flume appender.