Fork and set up remote in a non-blocking fashion

Forking through GitHub's API is asynchronous so there is really no way
of knowning when you can access git objects without polling.
Alternatively, we can establish the state of the fork with its remote
tracking branches and tags by fetching from the "origin" remote and then
changing the remote url to the fork.
`fork` should fetch from the same "origin" Github URL.
Merge pull request #469 from ivantsepp/301_fork_fetch_illusion

Fix `hub fork` command in cases when GitHub fork is not yet ready for fetching