magit-rev-name: new function

Use it in `magit-insert-rebase-sequence' to improve the revision names
displayed in the heading.  Always display "<NAME> onto <ONTO>", try to
display NAME as a branch name and ONTO as "NAME~<N>".
magit-rev-branch: new function

Use it in `magit-get-previous-branch', which previously used
`magit-get-shortname' and therefor also returned non-branches.
magit-get-previous-branch: try harder

Do not abort prematurely when there is still hope
of finding a suitable branch earlier in the reflog.
magit-insert-rebase-merge-sequence: new function

Create `magit-insert-rebase-merge-sequence' from code previously
in `magit-insert-rebase-sequence'.  We do this for symmetry with
`magit-insert-rebase-apply-sequence'.
reorder branch and HEAD faces

This prepares for the next commit, making the diff for that more
meaningful.
improve display of refnames

* Use "@" instead of "HEAD".
* Do not display "@" in the "Head:" header of the summary buffer,
  that would be redundant.
* In refs buffers when comparing the current branch use the face
  `magit-head' for the "@" marker.  Otherwise when "#" marks some
  other branch use `magit-tag' (sic).
* Change appearance of face `magit-head', be default it now inherits
  from `magit-branch-local' and doesn't make any changes.
* When "@" and the name of the current branch appear together
  only display the name but using the new face `magit-branch-current'.
magit-server-visit{,-args}: drop TYPE, rearrange

The TYPE is unused, drop it.  Move TOPDIR before OTHER-WINDOW.
magit-insert-tags: reverse order
make width of count column in refs buffers customizable
magit-insert-branch: use magit-rev-diff-count
magit-insert-tags: insert count of commits in the branch

just like for "other branches".
magit-insert{,-local}-branch: deal with detached HEAD

Don't error out when HEAD is detached.
magit-insert-branch: use commit type for detached HEAD

Previously the section type `branch' was used for the detached
HEAD also, now its type is `commit'.  To make that possible
create `magit-insert-branch-1' from most code previously in
`magit-insert-branch', and make the latter just deal with this
special case.
magit-show-refs-head: new command

The key "y" is bound to `magit-show-refs-popup', which is one of these
popups which be default are suppressed and instead just invoke the
default action.  The default previously was `magit-show-refs' but that
command always prompts for a branch and does not allow the user to
select "HEAD", which is what we want when HEAD is detached.

So add a new command `magit-show-refs-head' which alwyas uses the
current branch, HEAD if it is detached.  When the popup is invoked
with a prefix argument the user can use `magit-show-refs' instead.
use `git show (-s|-p)' instead of `git log -1'
use `--format=' instead of `--pretty='
use `--format=FORMAT' instead of `--format=format:FORMAT'

Provided FORMAT contains "%" this is equivalent to
`--format=tformat:FORMAT', which is the same as `--format=format:FORMAT'
except that it has terminator semantics, i.e. the last line also ends
with a newline character.
magit-rev-verify: new function
change prefixes of mode specific refresh buffers

Rename them from `magit-refresh-MODE-buffer'
to `magit-MODE-refresh-buffer'.
move magit-commit-mode et al to magit-diff.el

The commit inspection mode isn't much more than
a variation of what the general diff mode does.