magit-reset-head: fallback to HEAD

This is a bugfix, previously it did fallback to HEAD^.
Luckily the fallback didn't kick in all to often.
global-magit-wip-save-mode: add to correct Custom group
magit-log-unique-re: remove noise

Or rather don't insert any noise in
`magit-insert-unpushed-commits',
`magit-insert-unpulled-commits', and
`magit-insert-unpulled-or-recent-commits', so that we don't have
any noise to match in `magit-log-unique-re' and subsequently ignore.
magit-insert-unpulled-or-recent-commits: fixes
magit-insert-svn-{unpulled,unpushed}: remove noise

Two commits ago I forgot to adjust these used of `unique' log too.
magit-rebase-info: always return list of same length

Just like the doc-string already claims it does.
magit-{refresh-log-buffer,insert-bisect-rest}: drop --abbrev-commit

It is not required because we explicitly use "%h" for oneline
logs and for verbose logs this argument it is ignored anyway.
log: respect core.abbrev

Remove the variable `magit-sha1-abbrev-length' and instead just respect
the git variable `core.abbrev'.  This allows users to set this per
repository.

Also remove the function `magit-diff-abbrev-arg' which used the value
of the option and returned "--abbrev=<N>".  Beside that, the only place
where the elisp variable was used was when aligning lines in logs that
contained only part of the graph.  Because we move the hash to the
beginning of the line we have to align based on the default length of
the hash.  We can get that by using `git config core.abbrev' once per
log, so it's cheap.
magit-log-count: limit scope

We only cut of logs after a certain number of commits when they are
shown in a log buffer, other logs usually are not long enough for that
to be necessary anyway.  Nevertheless, we now establish the dynamically
bound counter in `magit-wash-log', which is used for all logs.  Doing
so is cheap because it only amounts to calling `cl-incf' N times, where
N is usually fairly low.
magit-diff-toggle-refine-hunk: follow rename

When cherry-picking renaming `magit-toggle-diff-refine-hunk'
to `magit-diff-toggle-refine-hunk' accidentally went through.

So we complete this now by also changing the binding in
`magit-mode-map'.
magit-git-command-topdir: fix #1190

Add new utility function `magit-git-command-read-args' instead
of attempting to play tricks with prefix arguments.  Also improve
doc-strings of `magit-git-command' and `magit-git-command-topdir'.
magit-pull: don't be verbose

Close #1176.  There's really no point in being verbose; users usually
don't see the output anyway and those who do would be overwhelmed by
the verbosity if there are more than a few branches.  The only lose I
can see is that the output no longer contains any information about
from where we didn't pull anything.
magit-apply-mailbox: only refresh once

To not refresh right after starting the asynchronous process.
Instead rely on the sentinel of that process to do so when the
time has come.
magit-refresh-all: always do it synchronously
magit-refresh: allow doing it synchronously
synchronously refresh files after running git

Refresh file visiting buffers synchronously after running Git using
one of `magit-run-git' and `magit-run-git-async', and their variants.
Merge branch 'sync-refresh'
abbreviate hash for cherry logs

Unlike for real logs we don't specify a format for cherry logs which
contains "%h".  So we have to tell git to abbreviate the hashes using
`--abbrev'.  (When `--abbrev=<N>` was removed only the `<N>` should
have been removed.)  Close #1191.
magit-wash-log-line: use dedicated faces for all signature states

Add the new faces `magit-signature-{good,bad,untrusted,none}' and
use them in `magit-wash-log-line' to colorize the commit summaries
based on the signature state (when `magit-log-show-gpg-status' is
non-nil).
magit.el: fix section nesting