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.
CDK-578: Add convenient type read accessor to settings, and enable dryRun mode via settings
increase morphline test coverage for typed settings
CDK-684: Fix CLI command name in help messages.

This defaults the CLI command name to the current default, kite-dataset,
and also adds a --dollar-zero hidden option that gets set to $0 by the
wrapper script so that the command name is whatever was called.
Added a new configuration concept called ServiceConfig. This is a config
object that is passed to the Service implementation's configure method
(also new in this commit), which allows Service implementation to
configure themselves.

Service specific configuration params can now be set with the MiniCluster
builder's setServiceConfig method.

The MiniCluster is now a more flexible Factory to new Service implementations,
offering a static registerService method that allows service implementations
to register themselves in static initializers.

The command line now accepts service configs as dynamic JCommander config
parameters. This will automatically be populated in the ServiceConfig
object. It also accepts fully qualified class names of services to run,
which allows new Service implementations to be added on the classpath,
and automatically runnable and configurable via the command line.

All listen ports are configurable via the services, giving us more control
over what sockets are bound to. Also, all sockets will be listening on
the same IP, even if bindIP is not set (the default will be 127.0.0.1).
Wildcard ports are now never used, even when ports aren't explicitly
configured.

We now wait for HBase regionserver to come online using the
waitForServerOnline method isntead of using a while(true) loop.

Shutdown notification now uses a CountDownLatch instead of the notify
method.
Added zk-port and namenode-rpc-port as first class config options
for the mini cluster. These have been added to both the builder and the
command line.
Removed the managed schemas table creation as part of the kite minicluster
launching, as that will automatically be created by HBaseMetadataProvider#create if
needed.
CDK-664: Fix constraint over-encoding in view URIs
CDK-664: Simplified URI building, additional tests
Changed the work directory of the TestMiniCluster test case to live in
a unique directory in target, and not in the /tmp dir

Fixed a bug in waitForHBaseToComeOnline, where the master
may not be fully initialized before this wait returns. This
was causing an issue in tests that were starting and immediately
stopping the master, causing tests to hang on cluster shutdown.
CDK-686: Add AllowNull fix for primitive types.
Merge pull request #216 from awarring/master

CDK-680 - A new module called kite-minicluster, which is a standalone minicluster ...
CDK-681. Add Hive metastore service to minicluster.
CDK-652. Include namespace in temporary repository.
CDK-693: Use the qualifiedUri method to properly check the scheme first.

Closes #228
CDK-694: Update the Log4jAppender to handle a null namespace

Closes #229
Correct incompatible schema change test

Fix testUpdateFailsWithIncompatibleSchemaChange to actually test
a schema change condition, instead of checking for the existence
of a correct location.
Merge pull request #230 from gabrielreid/fix-incompatible-schema-test

CDK-695 - Correct incompatible schema change test
CDK-584: Update alignedWithBoundaries for partition predicates.

This adds logic to alignedWithBoundaries to ignore predicates that are
defined for the partition fields. Partition predicates are aligned with
partition boundaries by definition.
Add maven property for findbugs bind phase.

This enables changing the phase where findbugs runs with a property. For
example, running mvn clean install -Dfindbugs.phase=deploy will prevent
findbugs from running. This allows separating test and build steps,
and running findbugs along with tests rather than build.