magit-apply-region: new function

Create new function `magit-apply-region' by combining code previously
in `magit-apply-hunk' with `magit-region-patch'.  That leads to a bit
of code duplication, but that's okay.
bring back magit-apply command

Other "apply variant" dispatchers such as `magit-stage' were only
limited to "diff related" section types, but `magit-apply' was
removed completely.  That was a mistake, revert it.
magit-wash-diff: support combined diffs

Support combined diffs created with argument `-c' and displayed as
"diff --combined", not just regular diff and "simplified combined diffs"
created with argument `--cc' and displayed as "diff --cc".  We will need
this once we allow showing merge commits with either `-c' or `--cc'.
magit-wash-diff: don't claim a resolved conflict is "unmerged"

When displaying a merge commit with resolved conflicts, prefix the
affected files with "resolved" not "unmerged" (which only makes
sense for diff output showing yet-to-be resolved conflicts).
magit-wash-diff: prefix new files with "new file"

This is the same prefix used by `git status',
we previously used just "new".
magit-wash-hunk: trim stored value

Only use the hunk header up to and including
the second set of @s as section value.
always fallback to magit-checkout-stage when discarding

When the user "discards" a conflict, then always offer to a side using
`magit-checkout-stage'.  Previously we only did so when acting on a file
section that was listed below the "unstaged" changes, but not when it
was listed below "staged".  Because these section really refer to the
same conflict, it does not make sense to redirect the reasonable action
in one case, while throwing up our hands in the other.

To allow this change (and others to follow) move most of the work
involved in discarding an individual file to `magit-discard-file'.
Previously it was randomly split across that function and
`magit-discard'.
magit-discard-file: handle renames
Merge branch 'n/diff-fixes' into next