magit-stage-{file,modified}: use magit-run-git

Previously `magit-call-git' was used but that was a mistake; that
function should never be used for actions that might change state
in a way that requires a refresh of the Magit buffers, because
unlike `magit-run-git' it doesn't do so.
magit-ref-fullname: use git rev-parse --symbolic-full-name

The previous approach using of using the first line
output by `git show-ref' did not work as intended.
remove unnecessary magit-unambiguous-refname-p

It was only used once and we can just use `magit-ref-fullname' anyway.
remove unused magit-rewrite-inclusive
magit-stash-apply: fix dropping --index
magit-stash-apply: fix last commit
Check for final \t in --- and +++ line in diff

On some occasion (apparently when there is a space in the file name) ,
git add a tab at the '---’ and '+++’ lines output by git diff, making
the newer magit-wash-diff failed to correctly parse this line.
Add test for washing diff in the status buffer.

3 test added: one for staged and modified file with space in their name,
one for unstaged modified file, and one for unstaged modified file with
space in their name.

Those test pass, but not before ae9a178cf05e1eb4e87c58ff86a515f4a24f7f69
Merge pull request #1398 from vanicat/t/tab-in-diff

A fix for a quirks in git diff output
fix 973a5ab06a55e0b8779be91968d32a92851b6f68
Merge branch 'master' into next