------------------
- Initial implementation of the "dataset metadata" feature: The basic idea is that special metadata files
can be added to the various dataset folders optionally to provide useful information about them, such as a
description, a version string, a changelog, information about the relevant tensor shapes etc... In the
future the idea is to allow arbitrary metadata files which begin with a "." character. For now, the
central ``.meta.yaml`` file has been implemented to hold the bulk of the textual metadata in a machine
readable format.
- Added a main logger to the main config singleton, such that this can be used for the command line
interface.
- Added the ``gather`` cli command which can be used to generate/update the metadata information for a
single dataset folder. This will create an updated version of the ``.meta.yaml`` file within that folder.
- Changed the ``bundle`` command such that the metadata file is now always updated with the new dataset
specific metadata, regardless of whether it exists or not. Additionally, custom fields added to that
file which do not interfere with the automatically generated part now persist beyond individual bundle
operations.
- Updated jinja template for ``list`` command to be more idiomatic and don't use logic within the template.
Additionally extended it with more metadata information that is now available for datasets
- Switched to the new version of ``pycomex`` which introduces experiment inheritance.
- Started to implement more specific sub experiments using experiment inheritance.
**INTERFACE CHANGES**
- The central function ``load_visual_graph_dataset`` now has a backward-incompatible signature: The function
still returns a tuple of two elements as before, but the first element of that tuple is now the metadata
dict of the dataset as it was loaded by ``load_visual_graph_dataset_metadata``