Improve magit-mode-setup

All the error-prone `default-directory` and `current-buffer` fiddling is now contained within `magit-mode-setup`.

The lower-level `magit-mode-init` is still available and if that is used `magit-mode-get-buffer-create` can also be used directly. But that shouldn't ever be necessary. I think, keep `magit-mode-init` for now.