magit-revert-buffers: don't use auto-revert-handler

`auto-revert-handler' does quite a few things we don't need, so instead
of using that just call `revert-buffer', `vc-find-file-hook' directly.

Since that also means that our advice to `auto-revert-handler' is
no longer used also turn `magit-blame-mode' off and on again when
appropriate.  But do not remove the advice, it is still needed when
`auto-revert-handler' is called outside of our control.
sanitize preparation of arguments to Git

Add a single function `magit-process-git-arguments' which prepares
the arguments to Git.  This includes flattening the list of arguments,
prepending `magit-process-standard-options', and when Cygwin Git is used
the quoting of certain problematic strings.

All of this is now only done for Git processes, previously we did also
flatten arguments in `magit-call-process' and `magit-start-process'.
Also avoid repeatedly flattening the arguments, by only doing so at the
lowest possible level, in calls to built-in process functions, i.e. in
`magit-git-exit-code', `magit-git-string', `magit-git-insert',
`magit-git-lines', `magit-run-git, and `magit-start-git'.

Arguments are now fully flattened.  Previously only the first level was
flattened.  Or at least that is what the doc-strings claimed, in reality
a varying number of levels was flattened (because the "one-level only"
flattening happened several times).

Because the argument list is now fully flattened - just before calling
Git - we can also drop several uses of `apply'.

Remove the option `magit-process-quote-curly-braces' (for Cygwin Git)
and instead put the test previously used to set its value directly into
`magit-process-git-arguments'.  While there never is absolute certainty
with things concerning Windows, there also have been no reports about
the quoting happening when it shouldn't, or not happening when it
should.  So remove the option to avoid confusing users (also the
doc-string was not really correct).
magit.el: cosmetics
update dependencies
add magit-mode-get-buffers, remove magit-map-magit-buffers
magit-mark-commit: use magit-mode-get-buffers

instead of `magit-map-magit-buffers' which was just removed.
magit-start-process: respect inhibit-magit-refresh

Dynamically binding `inhibit-magit-refresh' to t previously had no
effect for asynchronous processes because the refresh is triggered
by `magit-process-sentinel' which is run outside that binding.

Now `magit-start-process' saves the value of `inhibit-magit-refresh'
in a property of the process and `magit-process-sentinel' forgoes
calling `magit-refresh' if that is non-nil.
magit-blame: bind inhibit-magit-refresh to t

Without this the blame information is created and then immediately
destroyed again in `magit-revert-buffers' called by `magit-refresh'.
magit-blame-process-filter: avoid empty lines

When splitting partial output from `git blame --incremental' drop empty
lines, i.e. very partial output which we cannot process in a meaningful
way.  There are not actually empty lines in the output, but we might
receive partial output which only consists of a newline.  Dropping the
newline does not cause any problems latter when we combine partial
output, because we store partial output as a list of lines.