allow not using --graph when generating logs
magit-move-branch: cosmetics
magit-delete-branch: restore old behaviour

When the user tries to delete the checked out branch and then replies
that she wants to checkout master first then do so *and* delete the
other branch.

Before the previous commit 2107722 that touched this code we already did
that and I believe it was not intentional to change that.
magit-git-dir: add optional SUBPATH argument
remove magit-tree-contents

It was only used once and did in 13 complicated lines
what can be achieved in one simple line.
de-obfuscate magit-list-interesting-refs
fix more section headings

* rename "Branch Utilities" to "Branch Manager Mode"
* Add "Logging (continued)"
  (should be mered with "Logging" elsewhere in the file)
Revert "Call git wip asynchronously"

This reverts commit c976a733ea46b760620c83571a13dc53ce291d96,
and fixes issue #715.

Conflicts:
	magit-wip.el
fix magit-log regexp matching with square-brackets

Fixes #718.
Merge branch 'fix-log-regexp'
fix "Git is already running"

Previously it was possible that `magit-process' was not set to nil
even though the process has finished, causing all future calls to
`magit-run*' to fail.

For asynchronous processes this happened when the
`magit-process-client-buffer' got killed while the process was still
running (e.g. because the user killed it).  In this case the sentinel
failed to set `magit-process' to nil before it first tried to write to
the deleted buffer causing an error (which are not raised in sentinels).

Now setting `magit-process' to nil is the first thing done in
`magit-process-sentinel' and additionally an attempt to modify the
buffer is only made if it is live.

For synchronous process this could not happen, except when it receives
input, in which case the process is actually asynchronous but
`magit-run*' waits for it finish before returning.

Use a new sentinel `magit-process-input-sentinel' that sets
`magit-process' to nil in that case to.

Both sentinels now only do anything if the `process-status' is either
`exit' or `signal'.

As an additional precaution `magit-run*' now tries to recover from
causes when even the above failed.  If `magit-process' is non-nil but
has finished don't fail but tell the user to create a bug report.

Thanks to @acple and @daimrod, for pointing me into the right
direction.
magit-stage-item: fix file-name completion

Fix #717.