magit-read-file-from-rev: Fix default-directory

The default directory was not set when `magit-revision-files' was
called, resulting in the files being limited to the current directory.
Aside from the unintentional limiting of files, this resulted in
`magit-find-file{,-other-window}' displaying a blank buffer when called
from a subdirectory (because the file path was not correct for `git
cat-file').
Merge pull request #1435 from kyleam/fix-let-binding

magit-read-file-from-rev: Fix default-directory
magit-commit-add-log: properly abort if nothing is committed

See #1438.
Merge branch 'master' into next

Conflicts:
	magit.el
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