Dataset enumeration

Adds the ability to enumerate the datasets that are available, making data discovery and getting an overview of a repository easier.

Includes changes extracted from #198.
hasn't this diff gone through already in #204? I don't think the TODO is appropriate here either; it's probably better to drop the change in variantmethods entirely.