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.