magit-root-section: adjust doc-string

I cannot believe I forgot to adjust the doc-string when I replaced
`magit-top-section' with this variable.  :-/
magit-wash-diff: emergency fix

Recent refactoring to the code responsible for creating sections did not
take into account that washing diffs is done in a way different from how
washing usually happens; inserting a diff involves washing git output
twice, and even though we are washing git output `magit-with-section' is
also.  That, unlike `magit-git-insert-section' does not cancel an empty
section and therefor returns t.  That led to an endless loop when for
empty diffs.

This commit is just a quick fix to avoid the loop.  A proper fix will
involve not washing twice, a change I intended to make anyway.
magit-insert-unstaged-changes: cosmetics
magit-run-git-gui-blame: cosmetics
magit-wash-hunk: fix argument of magit-diff-refine-hunk

In magit-wash-hunk, magit-diff-refine-hunk seems to be called
invalid argument. So error occurs when variable magit-diff-refine-hunk
is set not nil.
Merge pull request #1052 from shigi/fix-refine-hunk

magit-wash-hunk: fix argument of magit-diff-refine-hunk
magit-wash-diff: properly cancel empty section

In `magit-wash-diff' properly cancel the section if it is empty by
setting SECTION to nil.  This still does not insert the "(empty)"
string, because that is implemented in `magit-cmd-insert-section',
not `magit-with-section'.  I am still undecided but I will probably
not move that feature and instead refactor diff washing so that it
is done in only one wash cycle (like most other things).
magit-insert-untracked-files: make consistent and shorter

Use `git status' instead of `git ls-files' to get list of untracked
files, as recommended in the latter's manpage.  Reduce code size by
using `magit-with-section' instead of `magit-git-insert-section'.
The latter should only be used for complex washing.  (But in many
cases that isn't so yet.)

Always rely on `status.showUntrackedFiles'.  Previously that was only
used when its value was "no" and the "normal" (show untracked files
and directories) and "all" (also show individual files in untracked
directories) had to be set using `magit-status-verbose-untracked'.
That is highly confusing, either respect the git variable or don't.
magit-goto-{previous,next}-sibling-section: cleanup
magit-grep: define as alias of vc-git-grep or lgrep

Remove the function definition of `magit-grep' and instead define it as
an alias of `vc-git-grep', or if `vc-git' isn't loaded (which it usually
is) then as an alias of `lgrep'.  The former derives from the later.

Using `git grep' without specifying a revision, like the old
`magit-grep' did and as `vc-git-grep' also does, does not gain anything
over just using `lgrep'.  Except that it can be used when grep and find
are not installed, of course.  What would be useful is if there was an

Eventually I will write a new implementation of `magit-grep'.  While
waiting for that to happen we use an alias instead of the old definition
because the latter was severely crippled, making it much *less* useful
than just plain `lgrep' or `rgrep'.
magit-insert-untracked-files: bugfix
magit-show: add argument SWITCH-FUNCTION

Add new argument SWITCH-FUNCTION replacing SELECT and PREFIX.
See doc-string for more information.
magit-show-file-revision: use pop-to-buffer

... instead of `switch-to-buffer-other-window'.
magit-insert-untracked-files: another bugfix

I forgot that this kludge is still necessary.
(It won't for much longer.)
magit-show: better buffer names

Don't cut of parts of a branch name that contains "/".  Instead replace
that that with ":", as that doesn't do any harm in filenames and also is
not a valid character in branch names (and therefor isn't ambitious).
magit-show: rename arguments
magit-show: only create new buffer if needed
magit-show: cleanup
magit-show: more cleanup
magit-show: absorb magit-show-file-revision

Instead of two commands that each provide useful defaults for REV and
FILE that the other function does not provide, merge the two commands,
which can now more often provide useful defaults.  Most people probably
didn't know about the removed command.  I did but I never used it since
there was no key binding and because I wouldn't have been able when to
use switch command anyway.