magit-push: remove kludge for ancient git versions
magit-push: cosmetics
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