magit-wash-log: use author/date overlay only with oneline style

Do not display the author/date overlay for log style `long', only
for `oneline'.  When the style is `long' then displaying the overlay
fails *and* it is unnecessary because the author information is
already displayed in another fashion.
magit-wash-log: give the code some room to breath
magit-wash-log: remove an unnecessary let-bound variable

Instead of binding USE-AUTHOR-DATE to the value of

  (eq style 'oneline)

just perform that test twice.  That is cheap enough; it might be even
cheaper than a variable binding.  Regardless, I think it improves
readability a lot.
magit-default-rev: always respect NO-TRIM argument

Previously this was only done when a commit could be found at point but
not when we had to use `magit-guess-branch'.
merge magit-wash-untracked-file into magit-wash-untracked-files
collect all status section inserters in one place

All of the sections created by these inserters are used in the "status"
buffer.  They can also be used in other Magit buffers but that doesn't
change the fact they are "status" sections.

Some of these inserters were defined as part of the "Status Mode"
toplevel section, while others where defined next to the lowlevel
functions they make use of.  There are two ways to make that
consistent... this commit implements on of them.

Because these inserters can also be used by other Magit modes besides
`magit-status-mode' create a new toplevel section "Status Sections"
instead of placing inside a subsection of "Status Mode".  Actually this
is done by promoting the existing subsection "Status Mode">"(sections)"
to a topsection; so the definitions that were already located there do
not have to be moved.

Because after moving `magit-insert-untracked-files' the toplevel section
"Untracked Files" only contains one function `magit-wash-untracked-files'
move that along with the former (which happens to be its only caller).

The definitions of the inserters are in the same order as the sections
are inserted in the "status" buffer.  Unfortunately that means that the
more noisy ones come first.  But that's just because nobody has bothered
cleaning them up yet.

Actually that is not quiet true.  The "line" sections are defined after
the "real" (multi-line and collapsible) sections.  But that is no
problem because the section is split into respective subsections "Line
Sections" and "Real Sections".
split the section "Stage and Unstage" into two

Split the section "Stage and Unstage" (a subsection of "Acting") into
two subsections "Stage" and "Unstage".  I admit this is completely
unnecessary but I have to satisfy my ocd.   :-)
add magit-add-change-log-entry{ replacing -no-option}

Add command `magit-add-change-log-entry' replacing the less flexible
`magit-add-change-log-entry-no-option'.  This is done by duplicating
the (trivial) prefix argument handling from `add-log-change-log-entry'.
magit-add-change-log-entry-other-window use magit...entry

Define `magit-add-change-log-entry-other-window' using
`magit-add-change-log-entry' instead of interactively calling
`add-change-log-entry-other-window'.

This makes the use of the macro `magit-visiting-file-item' unnecessary.
We will take advantage of that in the next commit.
magit-change-what-branch-tracks: lose unnecessary test

Do not test for the empty string being returned by `magit-read-rev'.
If the user makes no selection that function does no longer return
the empty string but raises an error.
magit-change-what-branch-tracks: lose comments

Loose the comments inside `magit-change-what-branch-tracks'.
They would have served better as the commit message.
magit-change-what-branch-tracks: simplify by using fewer variables
magit-wash-branch-line: rename internal variable

In `magit-wash-branch-line' rename internal variable `current-string'
to `marker'.
magit-wash-branch-line: add internal variable branch-face

In `magit-wash-branch-line' add a new internal variable `branch-face'.
This allows checking only once whether the current line is about the
checked out branch.
magit-wash-branch-line: mark checked out branch with "*"

In the branch manager mark the current branch with "*", just like Git
does.  Previously "#" was used.
magit-wash-branch-line: use insert instead of insert-before-markers

When this function is called there exist no markers that need to be
moved forward.
magit-wash-branch-line: use name variable when appropriate
magit-wash-branch-line: cleanup by using insert more than once

Previously there was one call to `insert`.  Unlike `concat' that does
not treat `nil' like an empty string leading to a lot of unnecessary
THEN clauses that consisted of the explicit empty string, which blew
up the code quiet a bit.  It also made it quiet unreadable making
comments necessary; now we don't need them anymore.
magit-wash-branch-line: shorten names of internal variables
magit-wash-branch-line: loose an unnecessary comment