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`.