magit-read-file-from-rev: expect non-nil REVISION

The argument is mandatory, and if it is nil then that
is a bug in the caller and should be fixed there.
magit-read-file-from-rev: cosmetics
magit-revision-files: return all files

Return all files in the revision, not
just those below the current directory.
magit-read-file-{from-rev,hist}: move definitions
magit-find-file-read-args: cosmetics
magit-read-file-trace: remove duplicated definition
magit-log-read-args: move definition
magit-log-read-args: rename arguments
magit-log-popup: where available use --long arguments
magit-log-popup: improve argument descriptions

Improve the descriptions of various switches and options.  Also no
longer mark "verbose-only" arguments as such, we will soon do that
differently.
magit-log-popup: improve action descriptions
magit-log-popup: reorder arguments
magit-log-popup: remove adventurous -L and -S arguments

The arguments `-L' and `-S' should never have been added to the log
popup.  They could be very useful to implement fancy history navigation
but just dropping them into the popup as is, really doesn't cut it.

Also remove `magit-read-file-trace' which was only used for `-L'.
magit-log-popup: remove broken --name-only argument
magit-log-popup: bind lowercase keys to arguments, most actions

For keys that change the values of arguments, give up on only using
keys corresponding to the short form of the respective Git argument.
Instead use all lowercase letters and try to make them consistent
within this popup.

For action keys we cannot do completely without uppercase letters,
we use uppercase for the "verbose" variants.  However use "o"/"O"
instead of "b"/"B", for consistency with other popups where we also
use the former for the "act on something other than the default"
action variants.
magit-log-popup: remove most expert arguments

In the past I have been criticized for both, (a) adding useless
confusing arguments, and (b) refusing to add essential arguments.

Different users have different needs and I won't be able to make
everyone happy.  Here I have chosen to remove lesser used arguments
which would confuse the non-expert.  The expert is welcome to add
these arguments back, I have invested quite some time making that
possible - use the functions `magit-define-popup-switch' and
`magit-define-popup-option'.
rename some log commands, move their definitions

For consistency with other sets of commands / popups
rename `magit-log-dwim' to `magit-log-current'
and `magit-log-verbose-dwim' to `magit-log-current-verbose';
and move their definitions.
default to oneline log, use verbose log when necessary

When an argument is set which requires the use of verbose log then
automatically use verbose log; when no such argument is set then don't.

Previously we did add/remove certain required/incompatible arguments,
based on whether the user then went on using a oneline or verbose log
command.  This wasn't transparent and did contain bugs.  Now there is
just one way to get a verbose log - use an argument that results in a
verbose log.  Currently the only such arguments are `--patch' and
`--stat'.

Remove the commands `magit-log-verbose' and `magit-log-current-verbose',
remove the respective action entries from `magit-log-popup', and adjust
`magit-log-read-args' and the remaining log commands accordingly.
separate magit-log and magit-log-current more cleanly

Previously `magit-log' with a prefix argument did behave
like `magit-log-current' and vice versa, but not anymore.
magit-log-nongraph-args: new variable

Add new variable `magit-log-nongraph-args' which lists the arguments
that cannot be used together with `--graph' (doing so would result in
a broken and effectively meaningless graph).  We did already filter
out `--graph' before, but the incompatible arguments were hard-coded.

Perform the filtering in `magit-log', previously it was done in
`magit-log-read-args'.