Make it work without Github

This PR intends to make modulesync more generic. It adds the following:

* Allow to set `git_base` in `modulesync.yml` to set a Git base instead of `git_user`, `git_provider_address` and `namespace`. This allows for more generic URI.
* Allow parameters for modules in `managed_modules.yml`. In order to do that, `managed_modules.yml` can now be either an array (compatible mode) or a hash with options. One option is passed so far (`:remote`), which allows to synchronize modules with completely different git bases (on different Puppet masters for example).
* Fix support for custom branch, which wasn't working since `Git#pull` and `Git#push` were called without this parameter