use `git -c g.o=v cmd' only when git supports it

Fixes #662.
Merge branch 'maint'
improve installation instructions and other docs
Merge branch 'feature/readme' into maint
Merge branch 'maint'

Conflicts:
	README.md
Make `magit-guess-branch' have git grep the reflog for at most one branch name.

This uses "git log --walk-reflogs --grep-reflog PATTERN, which is
supported in git >= 1.8.0.

Conflicts:
	magit.el
Merge branch 'feature/quick-reflog'
magit-refresh-log-buffer: fix section heading

Don't claim commits are in HEAD when they are not.
Ensure that the magit-insert-status-line second argument is a known string

This second argument being is passed as first argument of format, and
should contain %d and other format parameter only when appropriate.

Close #667
Revert "Ensure that the magit-insert-status-line second argument is a known string"

This reverts commit 5d56aac4504563d60a8ac3f7b6d27c87e9ef5807.
fix #667 without adding additional cruft

The problem with my original patch wasn't (just) that I forgot to
account for the possibility of the second argument unintentionally
containing format parameter but that using it as a format string was
wrong altogether.

`magit-insert-status-line' now takes exactly two arguments the HEADING
and the INFO-STRING and inserts both literally without processing them
using `format' first.

There was _one_ instance where we could previously write
  (magit-insert-status-line "heading" "%s %s" (a) (b))
and now have to write
  (magit-insert-status-line "heading" (concat (a) " " (b)))

If there were more instances like this then using the second argument
format string _might_ be justified (more likely not: it still makes it
harder to understand `magit-insert-status-line' without actually
thinking).  As it stands using a format string just obfuscates the
functions usage, which goes against the initial motivation of making the
code easier to read pleasing to the eye.

Furthermore if we need to document this function's use despite it being
very simple then there is something wrong with it.  Now a doc-string is
not necessary anymore, because I removed the initial "design" error and
use more descriptive argument lines.
fix typo in string
magit-last-point: add prefix, make permanent buffer-local
cleanup magit-revert-buffer and magit-update-vc-modeline
magit-refresh-wrapper: fix refreshing status buffer

Only attempt to update the status buffer if it actually exists.
Update the status buffer even if there are no other buffers that
need to be updated.
magit-run*: only advertise key for *magit-process* if there is one
magit-need-refresh: ignore non-magit buffers

Do not add buffers to `magit-refresh-needing-buffers' that do not
actually need to be updated because their modes don't derive from
`magit-mode'.  This does not affect how file visiting buffers
are *reverted*, which is different from being "refreshed" (but is
also triggered in `magit-refresh-wrapper').
magit-refresh-wrapper: always revert file-visiting buffers

Previously this wasn't done when there were no magit buffers
that needed to be refreshed.
fix magit-item-highlight for default theme

In the default theme both `highlight' (which `magit-item-highlight' used
to inherit from) and the various `magit-diff-*' faces set the background
color.  Making the former override the latter, which then have no effect
whatsoever.

Since our faces have to make sense when using the default theme we have
no choice but to use some other face attribute for `magit-item-highlight',
even though there is a good change that this will break some third-party
themes.

So in case people start complaining, please tell them to contact the
maintainer of their themes instead and point them to this commit.

This finally fixes issue #133.
magit-revert-buffers: perform cheap tests first