magit-mode-map: Fix magit-gitignore-locally key

Commit 0f189da4 unintentionally changed 'I' to 'i'.
Merge pull request #1386 from kyleam/fix-gitignore-key

magit-mode-map: Fix magit-gitignore-locally key
Makefile: allow running tests without compiling first
magit-refresh-status: call magit-log-margin-set-timeunit-width
allow displaying the log-margin in the status buffers

Unlike in log buffers the log-margin is always hidden initially (because
it wastes to much space), there is no option to change that, and there
also is no key binding for `magit-log-toggle-margin' (because it should
be the same as in the log buffer, but there it is `h', which isn't good,
especially not in the status buffer, where many beginners will press `h'
expecting help.
magit-stash-apply: if --index fails, try without
magit-insert-{,un}staged-changes: respect magit-diff-options
pass --no-prefix to git-diff

Otherwise we wouldn't know whether there is a prefix to be stripped.
Users may, or may not, set the `diff.noprefix' Git variable.
magit-wash-diff: get file names from various diff headers

To unambiguously determine the "source" and "destination" file
names we have to parse several header lines, and then, depending
on the diff "type", use the appropriate values.
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