implement parsing config from strbuf
implement fetching of moved submodules

Change calculation of changed submodule paths to read revisions config.

We now read the submodule name for every changed submodule path in a
commit. We then use the submodules names for fetching instead of the
submodule paths.

We lazily read all configurations of changed submodule path into a cache
which can then be used to lookup the configuration for a certain revision
and path or name.
submodule: simplify complicated decision tree whether to or not to fetch
submodule: obey revision config when appending to list for recursive fetch
DRAFT: fallback to configured default