Use unambiguous revision range syntax in git commands

The revision range syntax "HEAD ^$upstream" lead to problems if
$upstream is also the name of a file or directory in the
repository. To avoid such problems I'm using the semantically
equivalent "${upstream}..HEAD", which does not have the same problem.
Implement the 'rebase' sub-command

This command simply rebases the current change-branch onto its
upstream. It's a shortcut for "git rebase UPSTREAM" but arguably
easier because you don't have to remember the upstream's name.
Fix documentation