Shouldn't these methods be part of `SubModuleCollection`?

My feeling is that:
- everything that modifies the superproject should be done through `Repository.Submodules`
- a submodule instance should be immutable, as is a `Reference`