magit-git-executable: use bin/git.exe on Windows
magit-gitk-executable: locate executable at load-time

Locate the gitk executable at load-time when setting the default
value of `magit-gitk-executable', instead of doing it every time
`magit-run-gitk' is used.  This builds on a similar hack used
when setting the default value of `magit-git-executable'.
magit-run-{git-gui{,-blame},gitk}: use call-process

Start the subprocess using `call-process' with argument DESTINATION
being 0.  I.e. start the subprocess and immediately return 0 without
caring what happens to the subprocess afterwards.  Previously we used
`start-file-process' but that had the disadvantage that the process
object still existed when the subprocess was still running when Emacs
was being quit, needlessly forcing the termination of the subprocess.
Fix git pull behavior with multiple remotes
magit-rewrite-{set-commit-property,finish-step}: fix regressions

Make `magit-rewrite-set-commit-property' always return t so that the
`magit-section-action' hooks `magit-{apply,cherry-pick,revert}-hook'
run just the rewrite case, and not the default `commit' case too.

In `magit-rewrite-finish-step', do not use `magit-cherry-pick-commit'.
That function does a refresh before we had a chance to call
`magit-rewrite-set-commit-property'.  If cherry-picking a commit fails,
then say so.
Merge branch 'fix-rewrite'
Merge pull request #1294 from Silex/master

Fix git pull behavior with multiple remotes
add ability to undo last revert

Close #79.
magit-git-standard-options: add -c core.preloadindex=true
magit-get-current-tag: avoid using --dirty

Don't use the Git `--dirty' argument unless the function argument
WITH-DISTANCE-P is the symbol `dirty'.  This makes `git tag' much faster
on file-systems that don't properly cache access times.  Inside Magit we
currently are not ever interested in knowing whether there is any dirt,
but some third-party code does (well, some of my local hacks, that is).
Merge branch 'mushroom'
magit-gitk-executable: fix setting default value
magit-{insert,put-face-property}: don't specify overlay priority

We cannot specify the default priority because the overlays created to
refine hunks (by code in `smerge-mode.el') also are created without the
priority being explicitly specified.  When the priority is undefined,
then it defaults to 1.  In our case there are several overlays with that
priority at the same buffer position, but it seems the correct on wins.

Apparently if there are multiple overlays with the same priority then
the one which was created later is prioritized.  It so happens that this
is what we need here, but we just got lucky and this should be fixed in
Emacs.