remote: introduce and fill branch->pushremote

When a caller uses branch_get to retrieve a "struct branch", they get
the per-branch remote name and a pointer to the remote struct. However,
they have no way of knowing about the per-branch pushremote from this
interface.

Let's expose that information via fields similar to "remote" and
"remote_name".

Original-patch-patch: Jeff King <peff@peff.net>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
sha1_name: prepare for publish_mark