CDK-482: Refactored code to serve entire datasets.

I created protocols that mirror the org.kitesdk.data.* interfaces, but
take a remote handle so you can deal with multiple Datasets/Readers
at the same time. Also modified the ServiceReflectData to take in
a Schema and have DatasetServer pull the schema out of the dataset it's
serving. This will allow the server to use the Generic API for reading
underlying data, but clients can consume with any of the APIs
(Generic, Reflect, or Specific) so long as the Schemas are compatible.