Add support for 'git submodule' provider

This adds support for using git submodules as a provider.
This provider does not use the cache directory but checks out the
repository inside of core directory. On fetch the latest version from
the remote is used.