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
magit-refresh-commit-buffer: respect magit-diff-extra-options
magit-rebase-interactive-assert: fix typo
magit-svn-find-rev: fix issue #1404

`magit-show-commit' expects a string not a section.
try harder to locate a suitable emacsclient executable

Improve how the default value of `magit-emacsclient-executable' is
determined.  If we fail to do so, show a warning.

We determine whether an emacsclient executable is compatible with the
current Emacs instance by comparing its version with `emacs-version'.
The versions don't have to match exactly, but at least the major part
has to do so.

This commit changes how an executable's version is determined.
Previously we simply used the version suffix of the executable.
Unfortunately when Emacs is installed manually, then the emacsclient
executable usually does not have a version suffix, and so we did fall
back to the suffix-less executable which comes first on `exec-path',
which is a lottery.

Now we use `emacsclient --version' to determine the version, and the
order in which version-suffix-less emacsclient executable appear on
the `exec-path' therefor no longer matters.
Merge branch 'master' into next

Conflicts:
	magit-svn.el
Merge branch 'locate-emacsclient'
Merge branch 'master' into next

Conflicts:
	magit.el
fix last commit
Correct a typo in magit-list-remote-branch-names

match-string want an integer as first argument.

Replacing the "and" by a "when" because the second value is not a truth
value.

Added also some test on the different function that should list branch.
Merge pull request #1407 from vanicat/t/typo-in-magit-list-remote-branch-names2

Correct a typo in magit-list-remote-branch-names