move hacks inside section "Branch Manager Mode" to its end

Inside the section "Branch Manager Mode" move a group of utilities to
the end of the section.  These utilities are only used in this section
and have two problems, they are not quiet sufficient and they should
be generalized so that they can also be used elsewhere.
split magit-wash-branch-line-re from magit-wash-branch-line

Extract the regular expression previously embedded inside the
function `magit-wash-branch-line' and store it in a constant
`magit-wash-branch-line-re' (like we do for other such regexps).
magit-wash-branch-line-re: cleanup
magit-wash-remote-branches-group: fix whitespace
magit-change-what-branch-tracks: use a simpler prompt
magit-change-what-branch-tracks: sorter names for internal variables
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'.
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