magit-diff-visit-file-worktree: new command

Jump to the file at point attempting (and usually failing) to also jump
to the correct line.  This is what plain `magit-diff-visit-file' used
to do until a while ago; now that jumps to the correct location in the
correct revision, but sometimes that's not what we want.

Bind C-return to the new command, so `magit-dired-jump' has to move to
M-return.
magit-blame: remove unnecessary code
magit-blame: use window-{start,end} for range

Subtract 1 from `window-end' because there is disagreement
between Emacs and Git on how long the file is.
magit-blame{,-process-sentinel}: make file buffer current
magit-diff-wash-diff: detect more submodule states
magit-insert-tags: only if there are tags

otherwise no longer insert an empty section.
magit-jump-to-stashes: use value "refs/stash"

magit-define-section-jumper: add value arg
magit-mode-map: Add backslash for M-{n,p} binding
magit-insert-stash-message: new function
magit-insert-tags: including their messages

For annotated tags show the first line of the tag message,
for non-annotated tags show the commit summary instead.
Merge pull request #1632 from npostavs/meta-n-p

magit-mode-map: Add backslash for M-{n,p} binding
Merge pull request #1631 from npostavs/jump-stash-val

magit-jump-to-stashes: use value "refs/stash"
magit-read-{*}: rename argument DEFAULT to SECONDARY-DEFAULT

The functions `magit-read-branch-or-commit',
`magit-read-range-or-commit', `magit-read-local-branch',
`magit-read-other-branch' and `magit-read-other-branch-or-commit', take
a default choice as argument.  However it is not actually *the* default.
It's only a secondary default which is used when the actual default is
nil, so name the argument accordingly.
magit-branch-and-checkout: also starting from a stash

This uses `git stash branch' internally, which creates a branch, checks
it out, and then even modifies the index and/or worktree.  The last part
can be a little confusing for someone using `magit-branch-and-checkout'
with "stash@{N}" as starting point for the first time.  It would be even
more confusing when regular `magit-branch' ("and not checkout") did it,
so don't.
magit-status-refresh-hook: new hook variable

An unadvertised hook `magit-refresh-status-hook' already existed,
so this actually just changes the name and defines it as a custom
option.  The old name is now an obsolete variable alias.
magit-blame: start second run in correct directory

The let-binding for `default-directory' established early in
`magit-blame' is no longer in effect when `git blame' is run
the second time; establish another.
magit-diff-highlight-recursive: cosmetics
magit-diff-wash-revision: bugfix
magit-revision-insert-related-refs: new function
magit-get-{current,next}-tag: add optional REV argument