magit-log-wash-verbose: Check if graph is nil

Avoid the error

    Wrong type argument: char-or-string-p, nil

when '--graph' is not set.
Merge pull request #1604 from kyleam/n/fix-verbose-graph

magit-log-wash-verbose: Check if graph is nil
rename one instance of magit-log-verbose-re

There were variables named `magit-log-verbose-re',
rename one to `magit-log-use-verbose-re'.
rename magit-log-{non => remove-}graph-re

For consistency with `magit-log-use-verbose-re' and for being different
from other `magit-log-ONEWORD-re' variables which are used for something
quite different.
magit-cherry-apply: filter --ff

It is not compatible with `--no-commit'.
magit-toplevel-safe: append slash to DIRECTORY if necessary
use saved arguments when command is invoked outside popup

When a command which is usually invoked as a popup action is invoked
directly then use the global value of the respective `PREFIX-arguments'
variable.

`magit-define-popup' now also defines a function by the same name.
When that function is called while a action is being invoked from the
respective popup, then it returns `magit-current-prefix-args's value.
Otherwise it returns the value of the variable `PREFIX-arguments'.

Replace most occurrences of `magit-current-prefix-args' with a call to
such a function.
Merge branch 'n/outside' into next
magit-log-file: don't use --follow

It corrupts the graph, even for files that have never been renamed.
magit-log-file: ignore prefix argument

Respect `magit-log-arguments' and do not add or remove `--graph'
depending on whether a prefix argument was used or not.
magit-log-file: always show visited file, remove from popup

Remove `magit-log-file' from the `magit-log-popup' and stop reading
a file from the user and instead unconditionally show the log for
the visited file.  That's its only purpose now, to make that more
obvious rename it to `magit-log-buffer-file'.

The log commands that remain in the log popup will soon be taught how
to limit the history to a file or multiple files, while keeping their
other features which `magit-log-file' lacked.
magit-log{,-current,-head}: allow limiting to files

Teach log commands that are commonly invoked from the log popup to
limit history to commits which touch certain files selected in the
popup using the new "-- " argument.

Add `magit-log-read-files', which uses `completing-read-multiple', to
read multiple files from the user.  Store the read value as a single
string, because that's all that the current popup implementation
supports.  Then in `magit-log-read-args' separate that string from
the other arguments, split it into a list of files again, and return
that list separate from the other arguments.

Adjust `magit-log-refresh-buffer', `magit-insert-log` and
`magit-insert-log-verbose' accordingly.

Remove `--relative' from `magit-log-popup', it's no longer required and
confusing to non-experts.
Merge branch 'n/log-files' into next
magit-log: allow showing log for multiple revs, improve completion

Add new function `magit-log-read-revs' and use it read one or multiple
revs or ranges on behalf of `magit-log'.  It uses code from built-in
library `crm' but not the `completing-read-multiple' function defined
there.  " " is used to separate revs and ".." is internally treated as
a separator too, but to the caller that is invisible, e.g. "A..B" is
returned as the range it is, i.e. as a single string.

Replace the option `--branches=' (which isn't badly needed anymore)
with the switch-only version `--branches'.
Merge branch 'n/log-revs' into next
magit-push-read-args: fix typo