Refinements to git-merge-pull

- Be more prudent about not initiating rebase/merge process if the source and
  target branches don't match the corresponding remote branches.
- Perform the rebase on a separate <branch name>-rebase branch.
- Use colorize to make the output more pretty
- Change the merge commit message slightly.
- Generally be more explicit with git commands around remote and branch. Don't
  assume mapping is setup properly.
Does GitHub still recognize this commit as a merged PR? IIRC the magic on the GitHub side was merging into develop from the remote tracking branch, rather than from a local branch. In other words, merging from `floatplane/feature/myBranch` rather than `feature/myBranch`. Hence the force pushing.

```ruby
run "git merge --no-ff #{source_remote.name}/#{source_branch} ..."
```