magit-visit-file: use magit-file-at-point
magit-dired-jump: use magit-file-at-point
magit-read-file-from-rev: add PROMPT argument, improve default
add magit-find-file{,-noselect,...}

Replace `magit-show' with the more fine-grained `magit-find-file',
`magit-find-file-other-window', `magit-find-file-noselect', and
`magit-find-index-noselect'.

The removed `magit-show' did to much, probably because the old and by
now removed ediff wrappers expected it to do so.  The upcoming new
implementation of the wrappers won't need that to the same extend, and
where they do they will dispatch the appropriate `*find-file*' function
themselves.

Also change and extend the buffer-local variables used in these blob
visiting functions: `magit-buffer-file-name' now is an absolute file
name, just as `buffer-file-name' is.  The function by the same name is
removed.  Instead teach `magit-file-relative-name' to default to the
current file/blob when its FILE argument is not provided.  Replace the
variable `magit-show-current-version' with `magit-buffer-revision' and
`magit-buffer-refname'; the former is the full commit hash, while the
latter is the revision as provided by the user, which is also used in
the `buffer-name', and might not actually be a refname.  Make the
`buffer-name' match what `vc' would use as closely as possible.

Remove the variable `magit-log-file', since `magit-read-file-from-rev'
retrieves the same information directly from `magit-refresh-args' now,
and `magit-log-file' is not used anywhere else.

This is intended as an intermediate implementation, whose time will end
once I get around to implementing a file-handler for blobs and trees.
Merge branch 'n/find-blob' into next
magit-ediff-resolve-file: new command

Add `magit-ediff-resolve-file', a simple wrapper around `smerge-ediff',
as a replacement for `magit-interactive-resolve'.  This fixes #256, i.e.
only unresolved commits are shown.  Ediff was created in the age of vcs
that are bad at merging and has not yet been adjusted for dvcs like Git
and Mercurial, and so it actually wants to do all everything that needs
to be done to do a merge.  However we want to initiate the merge using
Git and then we want Ediff to help us with the conflicts Git could not
automatically resolve; we don't want to also have Ediff attempt to
resolve the conflicts that Git already resolved, especially because
Ediff fails more often than Git, causing the user additional work.
That's why the command name contains "resolve" not "merge", we only
use Ediff to resolve conflicts, not to do a merge.
Merge branch 'n/ediff-resolve' into next