save modified file-visiting buffers more often

Previously we did save, or offer to save such buffers when:

* Before refreshing (g) the status buffer.  (Which also happens when
  refreshing some other Magit buffer, but unfortunately at the wrong
  time; after updating the other buffer.)
* Before creating or jumping to the status buffer (C-x g).
* Before creating and/or checking out a branch.

Now we do so when:

* Before refreshing any Magit buffer.
* Before creating or jumping to any Magit buffer.
* Before calling git in `magit-call-git' and `magit-start-git',
  which means that we do so for many more Magit commands, which
  end up running Git using one of these functions.

This is controlled using the following new hooks:

* magit-mode-setup-hook
* magit-pre-refresh-hook
* magit-pre-call-git-hook
* magit-pre-start-git-hook
Merge branch 'n/save-buffers' into next
magit-stash-drop: offer to delete all stashes in region