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.
OK, I put variantmethods back to the way it was.