magit-update-index: new command

Note that this command and `magit-find-file-index-noselect' are only
intended to be used with Magit's upcoming Ediff integration.  They are
written in a way that they can also be used elsewhere, but if you do,
then you will surely run into problems; there are many details this
simple implementation does not take care of.
magit-find-file-index-noselect: ask before reverting
magit-revision-files: new function
magit-current-file: new function
magit-read-file-from-rev: make sure the default choice is valid
magit-discard-files--delete: change suffix of temporary index file

Use the same suffix we also use when visiting
a blob using `magit-find-file-index-noselect'.
magit-get-revision-buffer{,-create}: new functions
add new library magit-ediff

This is a new implementation of Magit's support for Ediff, replacing
the old implementation which can still be found on the master branch
(but was removed from this branch a while ago). Also see issue #1261.
Merge branch 'n/ediff' into next
Makefile: compile magit-ediff.el
magit-blame-format-time-string: bugfix
magit-blame-{header,sha1}: fix faces

These faces inherited from faces which no longer exist.
Fix `magit-blame-sha1' by inheriting from `magit-hash',
and `magit-blame-header' by defining it from scratch.
rename magit-blame-{header => heading, sha1 => hash}

for consistency with `magit-{section-heading,hash}'.
magit-blame-file-on: turn off incompatible fci-mode

Because the current magit-blame.el will soon be replaced with
a new implementation, don't bother turning `fci-mode' on again
when `magit-blame-mode' is turned off.
magit-ediff: correct doc-string

The range is passed directly to `git diff' which, when given
a single commit, compares the working tree with that commit.
Merge branch 'master' into next

Conflicts:
	magit.el
don't call magit-refresh-function if nil

The check against magit-refresh-function was dropped in
8aa75bf025f9353642c719a46b0257d1467ee90d, when magit-mode-refresh-buffer
was changed to magit-refresh-buffer.
Merge pull request #1434 from npostavs/safe-refresh

don't call magit-refresh-function if nil
magit-completing-read-function: advertise a helm variant