magit-popup-get-args: kludge for non-string values

It would probably be better to store all values as strings,
but this works for now.
put all popups in correct Custom group
replace magit-blame.el with a new implementation

The new implementation annotates the buffer asynchronously
and supports recursive blaming.
Merge branch 'n/blame' into next
magit-push-tags: respect popup arguments
Merge branch 'master' into next

Conflicts:
	magit.el
magit-insert-heading: cosmetics
magit-process-setup: hide global arguments
magit-process-filter: cosmetics
magit-rev-parse: accept any numbers of arguments

On the next branch this was done several months ago.  The callers where
then adjusted to take advantage of the new flexibility.  Here we only
change this function itself.  We do so to make the Org-Magit package
compatible with Magit's master branch again, see magit/org-magit#1.
Merge branch 'master' into next

Conflicts:
	magit.el
magit-am-apply-patches: replace argument FILE-OR-FILES with FILES
magit-am-apply-{patch,maildir}: kludge for git-am issue

Sometimes (not sure when) git-am claims that ~/existing does not exist,
but is perfectly happy with /home/me/existing, so expand all file names
before feeding them to git-am.
magit-bind-match-strings: cosmetics
magit-wash-diff: present submodules like git-status

Present submodules more like `git status' does.  I.e. use the adjective
"modified" for modified submodules and not "dirty" or "modified" with an
additional suffix.  To differentiate modified submodules from regular
modified files now append "new commits" and or "modified content", just
like `git status' does.

There is one exception `git status' doesn't present a newly added
submodule any different from a newly added file ("new file"), we do by
using "new module" when appropriate.

This commit also fixes parsing of newly added modules, previously that
failed completely.
advice(auto-revert-handler): bugfix
magit-blame-mode: bugfix

Users should use `magit-blame' or `magit-blame-popup' to turn on
`magit-blame-mode', but the intention was to also support using
the mode command for this purpose.  For that to work we have to
bind `magit-blame-mode' to nil around the call to `magit-blame',
because that otherwise thinks we are doing an recursive blame.
magit-blame.el: untabify accidental tabs
magit-ediff.el: remove trailing empty line
magit-hunk-set-window-start: cosmetics