[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)
kind of starting to like your abstraction here, i wonder if we should keep to our abstraction or try to use other library, i bet is better if we keep it simple to our abstraction