on disk organization for standard MXSD:

    root/
        config.yml
            ---
            backend:
                class: ...
                ...
            indexes:
                - class: ...
                  roles: ...
                  type: entry or object
                  ...
        storage/
            ...
        indexes/
            foo/
            bar/
            gorch/

the load routine goes through the config, loads/composes/creates classes from
the class and roles params, and then provides these objects as constructor parameters.

Basically all you need to give is the 'root' parameter, and everything else is
configured from the config file.

It is still possible to instantiate everything manually, for different types of
backends, etc.
