magit-branch-set-upstream: bugfix
magit-request-pull: don't prompt for branch

Because we don't actually use the selected branch.  We should
actually allow picking a branch but that will come later.
magit-clone: cosmetics
magit-clone: create parent directories of destination
magit-remote-{add,remove,rename}: improve doc-strings

Remove Git usage (that's not really useful) and improve wording.
magit-remote-remove: move definition
magit-remote-update: add ARGS argument
magit-get-remote: new function

Add `magit-get-remote' replacing `magit-get-current-remote'.
magit-get-remote-branch: new function
magit-read-remote: add USE-ONLY argument
magit-read-remote-branch: make REMOTE argument optional
magit-read-remote-branch: add REQUIRE-MATCH argument
magit-local-branch-at-point: new function
magit-push-tags: move definition
magit-push-tags: improve doc-string
magit-push-popup: use long arguments for all switches
magit-push-popup: add --force-with-lease

Because that is only supported since Git 1.8.5
we also have to keep plain old `--force'.
magit-pull-popup: remove --force

This is only required when the user has modified the default fetch rules
which by default begin with "+", i.e. forcing is the default, also it is
confusing.
magit-push: provide just one way to enable --set-upstream

The `magit-push-popup' features the `--set-upstream' argument, which is
how this sort of thing is usually done in Magit.  Until now `magit-push'
might also have asked the user whether she wants the upstream to be set.
The option `magit-set-upstream-on-push' was used to control under which
conditions the user was asked and the use of two prefix arguments did
override the option.  Remove the option and ignore prefix arguments with
regards to this.

Most things that was possible before are still possible, but there are
no longer multiple ways of doing the same thing.  The only exception is
that it is no longer possible to tell `magit-push' to refuse to push
when the upstream is not set.
add new push and pull commands

Previously only one command to push a branch and one command to pull a
branch existed.  Now there are several variants for pushing as well as
pulling.  They are all available from the respective popup which makes
it much easier to push to or pull from a branch which is not the already
configured upstream branch of the currently checked out branch.

Previously one had to remember exactly how many prefix arguments on had
to use to do something "unusual" and even then most "unusual" things
were not possible.  I for one did at least 2/3 of my pushes and pulls
in a terminal, but no more.

Add new commands `magit-pull-current', `magit-push-current',
`magit-push-elsewhere' and `magit-push-matching'.  Add the functions
`magit-pull-read-args' and `magit-push-read-args.  And adjust the
`magit-pull-popup' and `magit-push-popup popups, as well as the
function `magit-read-remote-branch' accordingly.