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.
Done.