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
deal with strange location of emacsclient on OS X

On OS X applications are often installed in strange "executable
directories".  The Finder presents these directories as actual
applications to the user who might be blissfully unaware that
clicking on it actually executes a binary inside the directory.

So they have been happily clicking on a flashy image to start
Emacs and we come along requiring emacsclient being on $PATH.

But it gets worse.  The emacsclient executable might not even be
located in the same subdirectory of the application directory:

  /Applications/Emacs.app/Contents/MacOS/emacs
  /Applications/Emacs.app/Contents/MacOS/bin/emacsclient

So we have to look for the emacsclient here too:

  (expand-file-name "bin" invocation-directory)

Also see:

  https://github.com/magit/magit/issues/862#issuecomment-24784266
magit-with-emacsclient: wait longer before resetting server-window

We have to reset the default value of `server-window' using a timer
(see comment close to this change).  Previously we waited 0.2 seconds
before doing so, but it seems that sometimes isn't enough.  Wait a full
second instead.
magit-blame-{prev,next}-chunk: use {previous,next}-single-property-change

Define `magit-blame-{prev,next}-chunk' using
`{previous,next}-single-property-change'.

This replaces a lot of broken code with the use of functions already
provided by Emacs.  The old code was broken in at least these ways:

* going backward always jumped to the beginning of the buffer (#937)
* going forward sometimes just moved a character forward
Merge branch 'pr/blame-moving'
magit-run-git-gui-blame: suppress error when not visiting a file

Suggested-By: Pieter Praet <pieter@praet.org>
Merge branch 'pr/no-linenum'
Merge branch 'pr/cookies'
Merge branch 'pr/no-overlay'
Merge branch 'ocd'

Conflicts:
	magit.el
move magit-grep to section "Miscellaneous Commands"
Merge branch 'grep'