magit-read-rev: raise error if user makes no selection

Do so by calling `magit-completing-read' with non-nil REQUIRE-MATCH.

There was only one caller for which getting nil back from
`magit-read-rev' made sense.  Reading the end rev in
`magit-read-rev-range' has been changed to not use `magit-read-rev'
to read the end rev.

There were several callers who did explicitly make sure the value
returned by `magit-read-rev' was non-nil before doing anything.
These asserts are no unnecessary and have been removed.  The fact
that such checks existed until now shows that people did run into
this problem and "fixed" it in the particular instance the noticed
without addressing the real issue; that has been taken care of now.
cleanup magit-ido-completing-read and magit-read-file-from-rev
magit-read-remote: make argument PROMPT mandatory
magit-refresh-log-buffer: cleanup
magit-refresh-reflog-buffer: split long line
revert bad refactoring
add magit-delete-tag and magit-read-tag
semantic and cosmetic cleanups

* magit-interactive-rebase: fix indentation, shorten long line, use
  `when' instead of `if'
* magit--branch-name-at-point: don't use `let', it isn't necessary and
  doesn't improve readability
* magit--branch-for-remote-repo: use `cl-mapcan' instead of
  (remq nil (mapcar ...))
* magit-remote-part-of-branch, magit-branch-no-remote: shorten long line
Fix regexp matching in magit-long-log

Previously when the graph had discontinued graph-lines the layout broke.
Such discontinued graph-lines occur for example when using `--author='
or `--grep='.  This commit fixes this.

As a secondary effect of this fix the git-log `-z' option is no longer
required.
magit-read-tag: fix typo
magit-key-mode-command: don't quote arguments to git

Git is invoked directly, there is no shell involved that would need the
the quoting to prevent splitting an argument containing whitespace into
multiple arguments.

In most cases the quoting is unnecessary when the argument contains
shell globs (to be interpreted by git not a shell) quoting did change
the globs, which is not what we want.
Add --branches/--remotes support to logging
magit-log-edit: shorten long lines
magit-get-top-dir: for default-directory by default

Make argument CWD optional; it it is unspecified
or nil default to the default-directory.
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
Fixes the implementation of magit-dired-jump

The original implementation broke `C-x C-j`'s natural behavior. The
status buffer is naturally associated with the root of the git
directory. This natural behavior is reinstated for any location in the
buffer not associated with a more specific file.
magit-log-oneline-re: add missing statuses

The regex was missing the values for the cases:

 - "U" for a good, untrusted signature, and;

 - "N" for no signature.

Without this, the log buffer in short mode and with
`magit-log-show-gpg-status` evaluating to true, would unconditionally
show the GPG signature status, author and relative date in the message
line as output by git.
make displaying tags line in status buffers a choice

Move the code that collects information about the two closest tags and
displays them info new function `magit-insert-status-tags-line' and add
new option `magit-status-insert-tags-line' to control whether that
function should actually do anything or return immediately.