magit-read-rev: handle no input case directly

Relying on `magit-completing-read' was not correct because
that meant that it could not be used to complete the end rev in
`magit-read-rev-range', for which no selection does make sense
(i.e. leave the end of the range unspecified).

Instead `magit-read-rev' has a new NOSELECTION argument to be used
by the latter.  It now only raises an error when the user makes no
selection and DEFAULT as well as NOSELECTION are nil.

This also makes a bug in `magit-read-rev-range' go away that resulted
from forgetting an argument in the call to `magit-completing-read'.
Add -ab for --branches without argument
Merge pull request #679 from tkf/magit-key-mode-all-branches

Add -ab for --branches without argument
add headings for variable sections