magit-svn.el: finish magit{->-log}-wash-log rename

magit-svn.el was overlooked in 4126fb173576910cb2f21977cd70ce113f0ba864
Merge pull request #1471 from npostavs/magit-log-

magit-svn.el: finish magit{->-log}-wash-log rename
avoid needlessly connecting to unrelated tramp remotes

In `magit-save-buffers-predicate-tree-only' avoid needlessly connecting
to unrelated tramp remotes by first checking whether the absolute path
to the top-level of the current directory is a prefix of
`buffer-file-name'.  Only if that is so check whether `buffer-file-name'
is actually directly in that repository (it may also be part of a
submodule or other nested repository.

Fixes #1473.

Suggested-by: Ryan C. Thompson <rct@thompsonclan.org>
avoid needlessly connecting to unrelated tramp remotes

In `magit-save-repository-buffers' avoid needlessly connecting
to unrelated tramp remotes by first checking whether the absolute
path to the top-level of the current directory is a prefix of
`buffer-file-name'.  Only if that is so check whether
`buffer-file-name' is actually directly in that repository (it
may also be part of a submodule or other nested repository).

Fixes #1473 on next.
Merge branch 'master' into next

Conflicts:
	magit.el

The two parents of this commit fix the same issue, once on master
and once on next.  Because the respective code area has previously
diverged a lot we have to fix it twice.  This merge commit keeps
the change on next and throws away the change on master.
remove unused magit-popup-read-rev
magit-read-rev: remove unused argument NOSELECTION
magit-git-executable: cosmetics
magit-completing-read: fix doc-string
magit-tag: cosmetics
magit-tag-popup: cosmetics
add various branch and commit readers

Previously mainly one function, `magit-read-rev', was used to read all
kinds of branches and arbitrary commits and ranges from the user.  Two
other, specialized functions already existed, `magit-read-local-branch'
and `magit-read-remote-branch', but these functions weren't used much.
Because `magit-read-rev' was very generic all callers had to duplicate
code responsible for determining the default choice and other things
that could have been abstracted away.  Aside from the duplication the
main problem was that the various defaults were not always consistent,
i.e. there were several commands that should have defaulted to the
current branch, but instead defaulted to just "HEAD".

Remove function
  `magit-read-rev'
remove variable
  `magit-read-rev-history'
add functions
  `magit-read-branch'
  `magit-read-branch-or-commit'
  `magit-read-other-branch'
  `magit-read-other-branch-or-commit'
change functions
  `magit-read-local-branch'
  `magit-read-remote-branch'
add variables
  `magit-revision-history'
  `magit-stgit-read-patch-history'

The functions whose names do not contain "no-commit" now only complete
branches.  The functions whose names do contain "no-commit" also offer
branches for completion, but also other refs, and furthermore they do
not restrict what the user can input, and even the default choice may
not be a branch.  When the default isn't a branch these functions try
to use a relative name such as "master~3" but we do not yet impose any
restrictions against which branches relative names are created.  Users
may also insert complete or abbreviated hashes.

In fact users could input arbitrary non-sense and there is no protection
against that yet, like there wasn't with `magit-read-rev'.  We currently
use this "feature" in an additional new completing function
`magit-read-range-or-commit'.  For now this is merely a stub, actually
it even is just an alias for `magit-read-branch-or-commit'.  Eventually
we need a completing function which can complete on both sides of "..".

The functions that contain "other" in their names take an optional
EXCLUDE argument.  When that is non-nil then these functions offer
branches different from that branch for completion, instead of those
different from the current branch.  Of course the excluded
branch (whether given explicitly or when defaulting to the current
branch) is never used as the default choice.

The new and improved completing functions are now consistent in what
they use as the default choice.  They use the branch at point (or commit
at point where appropriate) as default.  If there is no branch/commit at
point they use the current branch as default, except for the functions
whose name contain "other" which use the previous branch as default, and
prevent the current branch from even being selected explicitly.  Most of
the completing functions now take an optional argument DEFAULT, which
can be used to override the secondary default, i.e. the branch/commit at
point remains the default (if it isn't the excluded branch), but there
is nothing at point, then the value of this argument is used as default
instead of the current or previous branch.  There are only a few callers
which make use of this, but for a few it makes much more sense to
e.g. default to the tracked branch.
Merge branch 'n/read-branches' into next
magit-rebase{,-onto}: allow rebasing onto arbitrary commits again
magit-section-show: explicitly re-highlight on wash

When expanding the section involves inserting and washing it, then
explicitly re-highlight it.  Previously we pretended that there wasn't
a current section before we started washing and thereby triggered the
highlighting but that actually caused the highlighting to get stuck
because the old overlay never got disposed.
magit-insert-branch: do not bind magit-insert-section--parent

Do not bind `magit-insert-section--parent' in the lambda which is
created by `magit-insert-branch' and later used when inserting and
washing the section body when it gets expanded.  This is already
being taken care of in `magit-section-show' which calls the lambda.
magit-insert-branch: set magit-section property for post-children text

In the lambda which is created by `magit-insert-branch' and later used
when inserting and washing the section body when it gets expanded, set
the `magit-section' property of the post-children separator newline.

Setting this property is normally done inside `magit-insert-section',
here we have to do it explicitly because we modify an existing section.
highlight all headings using overlays

Unlike other sections hunks, and parents of such sections, are not
highlighted using a single overlay.  Instead all of their parts where
highlighted using text properties.  Until now that included section
headings, which wasn't a problem because all these headings where
uniform, they used a single face for all text.

In subsequent commits we are going to display diffs in more places,
making additional section types parents of hunks.  Some of these
sections have more colorful headings; overlays have to be used to
highlight these headings or their text properties would be lost due to
highlighting.
evaporate section highlighting overlays

We already did that for other overlays.  We now also do this for
highlighting overlays, which is necessary because refreshing the
buffer does not first delete these overlays.
add custom group magit-section