Clean up project.go

* Clean up unused methods
* Refactor to Project.Remote
On Mon, Oct 20, 2014 at 2:29 AM, Jingwen Owen Ou <notifications@github.com>
wrote:

> We could use Branch.Upstream() to get back the tracking branch instead of
> constructing from a Remote object.
>
I wouldn't go that route. If `head` or `base` (or both) were passed via
command-line arguments, then they indicate the names of branches as seen in
those GitHub repositories. The local versions of these branches might
either be differently named, or they might not exist at all. In other
words, there might be nothing that we can lookup upstream configuration
from.

Here's a scenario: somebody might specify: `hub pull-request -b gh -h
owner:myfeature`. This means the "gh" branch in the main repository
(typically "origin" remote) is the base, but that doesn't mean that there's
necessarily a local branch for "origin/gh". The head is "myfeature" branch
on whatever remote is pointing to a repo owned by "owner". If such a remote
doesn't exist, we can't display a git log, but we will still send
"owner:myfeature" to GitHub API.

So, we can only construct `<remote>/<branch>` representation when we can
resolve a remote from the owner name (technically from the Project object),
but we have to fall back to `<branch>` if we can't obtain the remote name.