create a backup whenever git-apply is used

Always backup the applied diff when `git apply' is used.  Previously we
only did so when `git apply --reverse' was used.  We now backup more
diffs, but this still is not sufficient, so add appropriate warnings to
the relevant doc-strings.

The fate of this backup mechanism is undecided, I might replace it with
a mechanism based on `git stash' or I might improve it.  The problem
with the former is that it requires a (trivial) patch to git-stash, and
latter likely leads to complications elsewhere.

Because this no longer is only used when `--reverse' is used (which we
used to wrongly refer to as "revert") rename the involved functions and
variables, `magit-{revert => apply}-{backup,backup-file,undo}'.

Save the arguments used when applying the diff as diff pretext, and in
`magit-apply-undo' use the inverse of these arguments (which might mean
adding or *removing* the `--reverse' argument).
add function magit-apply-patch

Create function `magit-apply-patch' from code previously duplicated
in `magit-apply-{region,hunk,diff}'.