CDK-657: Fix URI qualification in descriptor.

When makeQualified is called on a file URI and the default FS is a HDFS
URI, the authority section from the HDFS URI is incorrectly copied to
the file path. This catches the situation where the default FS scheme
and the location scheme do not match, so the default isn't useful, and
uses the location URI as the default to avoid this bug.
CDK-667: Initialize HDFS config in the FS Loader.

This fixes a bug where hdfs-site.xml is not loaded before attempting to
get a FileSystem for hdfs:/ URIs without the host and port, which should
be provided by the config.
CDK-556: Change the default data model for reflection to ReflectData.AllowNull

* The fix also includes two tests, including one to check the behavior of
  using AllowNull with a PoJo that has primitive fields.

Closes #209
Throw descriptive exception when JDK is not installed.
Merge pull request #214 from smola/fix/jdk-missing-warning

Throw descriptive exception when JDK is not installed.
CDK-670: Rename CLI command dataset to kite-dataset.
CDK-672: Add morphline command that removes all record field values for which the field name and value matches a blacklist but not a whitelist
update release notes
CDK-600: Add mapred.reducer.new-api to OutputFormat.

When the number of reducers is 0 in some Hadoop versions, the new API is
not used. The output format relies on the new API to run its
OutputCommitter correctly, so this forces the property to true.
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.
CDK-640. Deprecate use of anything but alphanumeric characters (plus _) in
dataset names.
optimize performance of removeFields and removeValues morphline commands
CDK-435: Enable FS nested partition source fields.
CDK-518: Remove PartitionKey use in Log4jAppender.
CDK-435: Update HBase to use EntityAccessor for keys.

This updates PartitionKey so that its data is extracted using the
EntityAccessor class. It also consolidates key building in the HBase
implementation by adding EntityComposer#extractKey and delegating all
key building to that method (via the new EntityMapper#mapToKey(E)). The
EntityComposer method is based on EntityAccessor because the most
reasonable place to manage the accessor is inside EntityComposer.

AvroEntityComposer also uses the accessor for extractField now, but
checks to ensure that the field is not a nested field, for now. The
getDefaultPrimitive method is no longer used so that this is compatible
with Avro's behavior.