magit-insert-untracked{,-1}: call git only once
properly remove temporary diff shown while committing

This broke a little while ago.  And also was to complicated.

Add new function `magit-commit-diff' and do everything related to
bringing up the diff and arranging for it to be later removed here.
Add it to `server-switch-hook'.

In `magit-invoke-popup-action' set `this-command' to the invoked command.

In `magit-mode-display-buffer' set `magit-previous-window-configuration'
to nil if `magit-inhibit-save-previous-winconf's value is `unset'.

Remove `magit-commit-async', we can just use `magit-run-git-with-editor'
now.  Remove `magit-commit-switch-to-buffer', regular `switch-to-buffer'
works just fine now.
remove magit-diff-with-mark et al

Remove the "marked commit functionality" and the only command that ever
made use of it.  Previously this was just moved out of sight be moving
it to `magit-extras.el' but really this serves no purpose, so nuke it.
magit-{call,start}-git: set $GIT_LITERAL_PATHSPECS to 1 (true)
decode Git paths in more places

Add `magit-decode-git-paths' and use it and its singular variant in many
places where we previously did not properly deal with encoded path names.
Revert "magit-refresh-buffer: wrestle with window-point again"

This reverts commit 043faabc4e88ed2551715078222e9ea20487186a.
rename magit-commit-{log => message}-buffer
add new library magit-commit.el
add new library magit-remote.el
magit-revision-refresh-buffer: use --format=fuller

Ideally the user should be able to set this,
but that's not yet possible.
magit-diff.el: fix a section heading
magit-tag-prune: fix prompts