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