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.
Yes, it appears to work as expected: https://www.dropbox.com/s/fp4bgvqklrqecri/Screenshot%202014-09-16%2020.48.13.png?dl=0.

My guess is that what github cares about for evaluating the merged-ness of a PR is: the target branch on the target remote has a merge commit where the merged commit is the head of the source branch on the source remote. I suspect it's agnostic as to what those branches were called when they were on your local machine.

So, the fact that we're merging the `*-rebase` branch to the target branch, then pushing the `*-rebase` branch to the source remote as the source branch (not the rebase branch), doesn't really matter to Github, AFAICT.

(I did, however, restore the force push, which is necessary for this to work. It was commented out in this PR when you first reviewed by accident.)