Revert "CDK-177. Change Flume Log4jAppender to use Marker instead of PartitionKey."

This reverts commit 9699fd9b9fd230bc77562704f6d532f60331126f.
Revert "CDK-177. Add convenience for exposing a View as a Crunch ReadableSource."

This reverts commit fd23f601254dc8ebb81bbf9d3a557093914a1539.
Add docs and strict format check for Crunch.

CSV and other formats are not supported by CrunchDatasets. This commit
adds a strict check to ensure Dataset instances use only parquet or
avro. This also updates the documentation to include the current
limitations of Source and Target objects returned by CrunchDatasets.
Remove range methods from View.

This commit removes the range-specific methods from View. Rather than
commenting them out, this moves them to a SPI package-private RangeView
interface so that the tests (TestRangeViews) can still be included. This
commit also updates the view implementations and their tests.

All view implementations now return the appropriate type rather than
View.

Some tests are moved to the same package as the class being tested to
allow use of package-protected view methods.
Move Marker to the SPI package.
Move Key to the public API.
Removing Marker from FieldPartitioner public API.
Replacing Marker with Key for RandomAccessDataset.

This makes several changes to Key to reduce its API footprint. Because
it was in the SPI before and is now in the API, several methods have
been removed and construction should now be done through the Builder.
The remaining constructor is for Key reuse only. This also updates both
Marker and Key to use get(...) rather than getObject(...) which was
named to distinguish it from other methods, e.g., getString, that are no
longer present.

The general Key API should match the one in tomwhite/cdk
CDK-177-release. The big exception is that validation with the
PartitionStrategy now happens in the build() method because it needs to
validate that all fields are present and a source field may be used for
multiple derived values in the Key.

This also includes minor updates to switch over to the new, reduced Key
API.
Add mention of CSV in Formats#fromString.
Revert "Move Key to the public API."

This reverts commit 28c5415a83db967eebb00ce941e18b263d0e6aeb.
Rename spi.Key to spi.StorageKey.
Introduce public Key for RandomAccessDataset.

Note that this Key does *not* subclass Marker, since Marker is
now in the SPI, and we don't want SPI classes to leak into the
public API. Also, Key shouldn't have lots of internal-only methods
exposed that users don't need.
Remove DatasetRepositories#register from public API since it is an SPI mechanism.
Fix javadoc warnings.
Fix some HBase warnings.
Remove support for Flume Log4jAppender's datasetRepositoryClass property
since it relied upon all DatasetRepository implementations having a
public single-argument URI constructor. This is no longer the case, and
instead repo: URIs should be used. This changes updates Log4jAppender to
fail fast with an information error message.
Add @throws to Key.Builder#build.
Update the reference guide for 0.9.0.