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.
I'd change this line to 
```ruby
def run(cmd, args = { :failure => lambda {} })
```
Then calling it would look like 
```ruby
run "git pull --no-rebase --ff-only", :failure => lambda {
  "Unable to update local target branch (#{target_branch}). Please repair manually before continuing.".red
}
```
which makes things a little clearer to me. Also, parens around the arguments to run are optional.