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.
A new module called kite-minicluster, which is a standalone minicluster that can be configured
with Services (like Cloudera Manager) that are run as part of the minicluster. Supported
Services in this commit are HDFS, HBase, and Zookeeper.

This minicluster implementation can be embedded in an application, integration tests,
or run standalone from the command line.

The minicluster supports forcing all listening sockets from minicluster services to force bind
to a specific IP address, making this minicluster compatible with environments like OpenShift
where the user is restricted on which IPs they are able to bind to.

It also supports toggling whether it starts fresh by cleaning the data directory of a previous
run, or keeps the data directory in tact so data can be kept across runs.