magit-push-dwim: extract from magit-push

Remove the default push implementation from the `magit-push' command,
leaving nothing but calling `magit-push-hook' behind.  Create a new
function `magit-push-dwim' from the removed code and add it to the
default value of the hook.  This allows using a simpler implementation
that is more true to Git, while not disturbing users who have grown
accustomed the, somewhat wacky, old implementation.
magit-push-dwim: port implementation from magit-push-remote

Port the `magit-push' implementation from the `magit-push-remote'
extensions to be used as `magit-push-dwim'.  Remove everything related
to the "push remote", obviously.  This implementation works the same as
the old, it's just cleaner.  It does *not* make `magit-push-dwim' more
faithful to what Git intended.
magit-push-dwim: fix interactive form
magit-push-dwim: don't prepend refs/heads/ to remote branch
magit-push-dwim: cosmetics
magit-get-remote/branch: new function
README.md: demote some headings
bump copyright years
magit-read-stash: fix
magit-apply-{diff,hunk}-item: use --ignore-space-change

Close #1139.
Merge pull request #1144 from sergv/fix/magit-read-stash

use queried stash id in magit-read-stash
magit.texi: remove obsolete information
magit-push{,-dwim}: improve doc-string
magit-push-hook: make the default value a list

This allows adding hook functions using `magit-add-section-hook'.
(Yes, this isn't a section hook, but besides being the disadvantage of
not supporting hooks that have a non-nil value, this function also has
advantages over `add-hook', mainly more control over where the new entry
is inserted.
stgit: Fix 'magit-run-stgit'

Use 'magit-call-process' instead of 'magit-call-git'.
Merge pull request #1151 from llvilanova/magit-run-stgit

stgit: Fix 'magit-run-stgit'
stgit: Do not propertize patch message

Face 'magit-stgit' does not exist.
stgit: Allow empty patch messages
Merge branch 'pr/stgit-series-ui'
Whitespace fix on staging/unstaging all files.

`yes-or-no-p` requires a trailing space on the string passed in,
otherwise you end up with "Stage all changes?(yes or no)".