core: Add "zotonic modules sync-branches" subcommand

This command tries to align external modules to the current Zotonic
release branch.

e.g. when you have an external module with a branch named
release-0.11.x, the module will be checked out using that branch when
sync-modules is ran or when the module is newly installed.