[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)

TODO:
- [ ] Update tests
- [ ] Check if all git executions are done using GitHelper
- [ ] Remove duplication
   - [ ] use guards for checking working-tree.
- [ ] Always restore to original branch on error
yes agreed, also i noticed other good libraries but according to principles of stability i think they are less stable even if they are very good, so depending on those is not the best. For now this is the way, maybe we can even spin later on our own library :blush: