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.
CDK-320: Remove URI handling from Hive MetadataProviders.

URIs were added to the Hive MetadataProviders because the wrapped FS
provider returned a Dataset with DatasetDescriptor that could not be
changed (which is also Immutable). The last commit updated the Hive
repositories so they extend the FS repo and set its URI correctly, so it
returns Datasets with correct DatasetDescriptors and the Hive metdata
providers no longer need to know about the repo URI.
CDK-320: Return DatasetException to avoid deprecation warning.

This hopefully fixes Travis CI.
CDK-376: Initial working CSV InputFormat.

This also adds a CSVAppender for testing with TestMapReduce that is
disabled by default.
CDK-376: Fix CSVInputFormat hadoop-1 compat.
CDK-375: Use logger for console interaction.

This commit uses a slf4j logger for console interaction rather than
using System.err directly. This enables verbosity levels and
config-based control of messages to users.
CDK-375: Add schema commands.

Commands:
* schema: output the schema for a dataset
* csv-schema: create a schema from a csv data sample
Merge branch 'CDK-375-add-schema-commands'
CDK-386. Add a Hadoop 2 profile.
Address Ryan's feedback.
Use 512MB for HBase 2 tests.
Add quiet option to install phase to reduce log output (Travis CI retains only first 10000 lines)
CDK-375: Improve CLI usability.

Based on discussion and feedback from Dennis. Reorders help messages
that weren't obvious and adds example uses.
CDK-375: Add CLI command to build reflect schema.
CDK-389. Run Hadoop 2 tests against default artifacts.
CDK-375: Add test for SchemaCommand.