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.