improve diff popups

* Actually respect the arguments set in `magit-diff-popup`. That broke some time ago.
* Add new `magit-diff-refresh-popup` which *changes* the arguments used for the diffs in the current buffer. Previously this was done using the `magit-diff-popup`, which now only creates diffs in "another buffer".
* As a result of that there are now two custom options for diff arguments, which makes it possible to use different arguments in e.g. status vs. diff buffers.
* Add new `magit-diff-dwim` command. It's the new default action of `magit-diff-popup` and it does ... what you mean.
* Various little improvements and low-level awesomeness.