[WIP] first steps into using the GitHelper

                    
|Q            |A   |
|---          |--- |
|Fixed Tickets|#332|
|License      |MIT |
                    

This the first PR to improve the git execution.

Commands only use the GitHelper and no longer execute git directly. 

And this PR brings some small additions as well :blush:

- pull-request:squash preserves the original first-commit message
- pull-request:switch-base creates a new PR with (only when the adapter does not support switching) and
  preserves the orginal subject and description.
 Sent using [Gush](https://github.com/gushphp/gush)
`$tmpName` should be unlinked when the command finished executing