CDK-363: Fix hadoop-1 build with multiple artifacts.

This changes the kite-hadoop dependencies to use different artifacts
instead of different versions because versions can't be used with the
maven-release-plugin.
CDK-316: Converted Constraints to implement Serializable and added logic for serializing its predicates.  Also added tests to verify the serialization.

CDK-316: Updated formatting for the code and added support for classes that are not Avro or Serializable using Avro Reflect

CDK 316: Fixed tests to actually test serialization. Fixed issue with Avro serialization and Range serialization

CDK-316: Reverted changes to TestConstraints
make it compile with java8
Enable headless mode during unit tests. There is no need to start AWT. This works around a thread leak during unit tests on OSX.
CDK-379. Tests generating derby db in git tracked location.
performance enhancement
Merge pull request #43 from QwertyManiac/CDK-379

CDK-379. Tests generating derby db in git tracked location.
CDK-383: Upgrade kite-morphlines-saxon module from Saxon-HE-9.5.1-4 to Saxon-HE-9.5.1-5
Changed collided to collides to make it present tense.
Correct format strings for Guava preconditions

Use the correct formatting token (%s) for Guava Precondition
calls.
Merge pull request #49 from gabrielreid/precondition-format-string

Correct format strings for Guava preconditions
CDK-283: Run hadoop-1 tests on default artifacts.

This updates the Travis CI config to run hadoop-1 tests on the default
artifacts produced by building against hadoop-2 dependencies. This tests
the binary compatibility of Kite with both versions.

The hadoop-1 profile no longer builds artifacts, and should only be used
for testing with:
  mvn test -Dhadoop.profile=1 <other options>
CDK-283: Add kite-hadoop-compat module.

To fix morphlines when hadoop-1 jars are provided, this moves the
dynamic method resolution from kite-data to a new module,
kite-hadoop-compatibility, that provides dynamically-resolved shim
methods to work around binary changes. Now both kite-data and
kite-morphlines depend on kite-hadoop-compatibility for methods like
getConfiguration and getFileSystem.

Hadoop-1 tests are passing locally.
Add equals and hashCode to URIPattern.

This allows URI patterns registered with DatasetRepositories to be
replaced. This is to support tests that register mock URIs.
CDK-384: Add CLI from CDK-55.

Dataset partitioning support has been removed because unpartitioned
datasets are sufficient to support the first few examples. When the
partition strategy format is finalized and committed, this should use
it.
CDK-388: Move filesystem package to spi.filesystem.

Because filesystem is now in the SPI, this eliminates the Accessor and
moves the Loader to get rid of the impl sub-package.
CDK-388: Add deprecated filesystem API for transition.
CDK-320: Move MetadataProvider to SPI.

This also moves the the test code into the SPI, but not the
MetadataProviderException. The exception will be deprecated as part of
CDK-372 in favor of problem-focused exception classes.
CDK-320: Add MetadataProvider interface for compatibility.

This adds the org.kitesdk.data.MetadataProvider interface back, which
extends the SPI MetadataProvider for compatibility until 0.14.0. This
also deprecates MetadataProviderException. In 0.14.0, it can also be
removed.

Deprecation warnings for MetadataProviderException have been fixed by
catching DatasetException or a more appropriate exception and by
wrapping a more specific exception in a MetadataProviderException when
propagating exceptions. In most cases, a MetadataProviderException now
wraps a DatasetIOException. Wrapping exceptions is done by
Accessor#providerExceptionFor to avoid deprecation errors for imports,
which can't be suppressed.
CDK-320: Remove MetadataProvider from FS repo builder.

This removes the metadataProvider method that configures the FS
repository builder because the provider is no longer in the public API.
Callers setting the provider now must use the constructor. Because the
Builder can't be used to create a FS repository with a different
provider, the Hive integration now subclasses the FS repository and sets
the provider in its constructor.

FileSystemDatasetRepository#getMetadataProvider is now package-private
because it is required by the Hive intregration, which includes its own
package-private version.