remove with-magit-tmp-buffer

This macro had semantics very different from `with-temp-buffer', a
name that is to close to that of the latter, and no doc-string.

This could lead to tears, or at least confuse people.  Blinded by the
similarity of the names at least I did not initially see the semantic
difference.

There are multiple ways this could be addressed.  E.g. we could find a
more descriptive name and add a doc-string.  But since this macro is
only used twice it makes more sense to just remove the abstraction and
let the two callers do the necessary work themselves.  I think that in
this case _not_ moving the complexity out of sight actually improves
the readers understanding even though the code becomes a little
longer (especially considering that the abstraction would/was only
used once).

Yet another approach would be to improve `magit-run-git-async's
semantics.  This approach wasn't taken because I wanted to contain the
changes to a small area.
remove magit-goto-line

It is only used once and simply enough to be inlined.
define string-prefix-p if it doesn't exist

and remove magit-string-has-prefix-p.
magit-compat.el: remove stray commend
move magit-use-region-p to magit-compat.el
move magit-highlight-line-whitespace

It is now defined below its only caller.
Also move variable magit-current-indentation.
magit-highlight-trailing-whitespace: cache style itself

Instead of having `magit-mode` caching the indentation style (even when
it is not used) do the caching inside `magit-highlight-trailing-whitespace'.

Remove the local variable `magit-current-identation' that was previously
used for that purpose and instead use set the local value of of
`magit-highlight-trailing-whitespace'.  It is okay that the custom and
local value of that variable doesn't have the same form because the
local value is only ever used inside `magit-highlight-trailing-whitespace'.

Also use `when' instead of `if' since there is no ELSE.
split Utilities section, rearrange

Split the toplevel section "Utilities" into two toplevel sections
"Various Utilities" and "Git Utilities".  This requires that some
definitions are moved around - which is okay because it is unlikely
some one is going to use blame on these lines.
Merge branch 'cleanup'