magit-diff-range: new function (kludge)

The commands `magit-ediff' and `magit-show' badly need to be sanitized.
Unfortunately not only they are rather messy but also some data they
consume, the "diff range".  And then they way that value is determined
and stored is also rather wacky.  It's a chicken and egg problem, and
I have chosen to start here.

Eventually the new function `magit-diff-range' will be replaced by
something saner and more complete.
magit-wash-commit: don't set magit-current-diff-range

See previous commit.
magit-wash-commit: create sections from header and message

Also cleanup the function and remove some dead code.  Replace
`magit-insert-commit-button' with `magit-make-commit-button'.
Merge branch 'pr/commit-header'