WIP: Introduce several submodule methods

Introduce several new submodule methods:
- [X] Init
- [X] Update
- [ ] Sync

There is a weird behavior around the relative local submodule URL that I am still investigating. This is more obvious in some of the tests, as the tests use a relative local path submodule URL.
Wouldn't `.HasFlag()` work in this case?