rebase: use reflog to find common base with upstream

Commit 15a147e (rebase: use @{upstream} if no upstream specified,
2011-02-09) says:

	Make it default to 'git rebase @{upstream}'. That is also what
	'git pull [--rebase]' defaults to, so it only makes sense that
	'git rebase' defaults to the same thing.

but that isn't actually the case.  Since commit d44e712 (pull: support
rebased upstream + fetch + pull --rebase, 2009-07-19), pull has actually
chosen the most recent reflog entry which is an ancestor of the current
branch if it can find one.

Change rebase so that it uses the same logic.

Signed-off-by: John Keeping <john@keeping.me.uk>
Merge branch 'rebase-i-comment-squash' into jk/pu

* branch rebase-i-comment-squash:
  rebase -i: comment first line of autosquashed message

Comment out the first line of a "!squash" commit when generating a
commit message in git-rebase.

Merged to jk/pu on 2013-03-30.  Dogfooding for a while to see if
this is a sensible change.
Merge branch 'rebase-upstream-reflog' into jk/pu

* branch rebase-upstream-reflog:
  rebase: use reflog to find common base with upstream

Use the reflog when no rebase root is specified so that we can do
better at avoiding conflicts when the upstream branch has been
rewritten.
Merge branch 'pull-use-is-ancestor' into jk/pu

* branch pull-use-is-ancestor:
  pull: use merge-base --fork-point when appropriate

Now uses --fork-point to replace the shell loop.
Merge branch 'log-cherry-no-merges' into jk/pu

* branch log-cherry-no-merges:
  revision.c: ignore merges for cherry-pick

Don't consider merges for cherry comparison.
Merge branch 'split-instaweb' into jk/pu

* branch split-instaweb:
  instaweb: refactor httpd code into separate files

Split the instaweb script to have each HTTP daemon in its own file.

Conflicts:
	git-instaweb.sh