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.