CDK-537: Check for empty views and return 0 splits.

This updates the FS implementation's InputFormat to check the incoming
view using isEmpty to fix the setInputPaths bug. FileInputFormat assumes
that setInputPaths is called with at least one path. MR tests have been
added for both FS and HBase.
CDK-534: Add View#isEmpty test.

This adds a default implementation in AbstractRefinableView that
instantiates a DatasetReader and returns false if that reader has at
least one record. The javadoc for the new View method notes that this
may be expensive in some cases.
CDK-529: Add Datasets methods without type argument.

This simplifies code when the type parameter doesn't matter or when the
dataset that is constructed is not used.
CDK-529: Add tests for Datasets methods without type.
CDK-529: Use GenericRecord instead of GenericData.Record.

Use the interface rather than the concrete class for generic Datasets
methods. This prevents an incompatible API change if the generic record
implementation changes in the future.
CDK-532: Add CharSequenceSet for String/Utf8 comparison.

This adds CharSequences.compare and CharSequences.hashCode that produce
consistent results across concrete types of CharSequences, and a Set
implementation that uses them.

Predicates.in implementations are now updated to detect CharSequences
and use a CharSequence set. Ranges have not yet been fixed, so the to
and from methods in AbstractRefinableView will still round-trip String
and Utf8 values.

In addition, this fixes the serialization round-trip for partition
fields.
CDK-532: Replace Range with CharSequence version.

This adds a minimal Range API almost identical to the parts of guava
that are used, but that is more flexible with endpoints and allows a
CharSequence implementation.
CDK-532: Remove DataModelUtil round trip method.

Predicates now work with CharSequences correctly, so there is no need to
round-trip values to coerce between string types.
CDK-532: Remove primitive compare methods for java6.
CDK-532: Add tests for CharSequences.
CDK-532: Add Range tests for Comparable, CharSequence.
Merge pull request #144 from rdblue/CDK-537-fix-mr-empty-views

CDK-537: Check for empty views and return 0 splits.
CDK-540: Handle other GenericRecord implementations in FileSystemDatasetReader

 * FileSystemDatasetReader now handles other implementations of GenericRecord
 * HBase won't handle them, but that is not a regression and will be fixed in
CDK-541.
 * Added a test for CSVFileReader.
Merge pull request #147 from joey/fix_type_for_read_generic

CDK-540: Handle other GenericRecord implementations in FileSystemDatasetReader
CDK-538: Added unit tests for DataModelUtil.