SubmoduleOp class does (at least) two things: keeps the map of
subscriptions for a repository and creates/amends gitlink commits.
The creation/amendment of gitlink commits doesn't need anything else
from submoduleOp and can be moved to its own class.
This makes submoduleOp smaller, simpler and more focused. The new code
is easier to unit tests. As a side benefit, GitlinkOp becomes a static
inner class.
Change-Id: I066866b264b81c70c3e3751d6e190a4b1e6828dd