improve git-remote configuration handling for gush

|Q            |A   |
|---          |--- |
|Fixed Tickets|#347|
|License      |MIT |

~~**ADAPTERS NEEDS UPDATING**~~ (DONE)

This a first step into improving the git-remote handling, at the moment only merging of pull-requests uses this new technique.

The idea is to simplify the remote to org mapping, as you can currently merge to org gusphp with remote origin (which is not very clear and has some known problems, as org is not used everywhere).
Eventually you no longer need to use the --remote option, just the --org! :smile: 

*But for complete usage, this requires a big rewrite, as we need the active adapter which is not available when decorating the command-definition.*

The total picture:

- We use the hub organization-names as the remote names, so there is a 1:1 mapping between remotes and organizations.
- when merging/pushing/pull we only use the org-name as remote-name (not origin or upstream).
- "origin" is *only* used for getting information about the repository {1}; if the repository is a fork its treaded as the '--source-org', the fork-origin (head-parent) is used as the '--org'. If the repository is not a fork its used for both the --org and --source-org, which is the case when using either GitLab or not using forks.
- upstream (when present) is ignored.

{1}: At the moment we use the GitHelper for getting the vendor (org) and repository-name, but we should use the adapter instead as its more future proof (git-adapters which are not using the hostname/org/repo convention). In the current situation this would break as the Adapter not is available at the moment of decorating.