Enable cloning private repos

Since cloning of private repos over `git:` protocol is not possible,
users were required to manually add the `-p` flag to trigger cloning
over the `ssh:` protocol.

Now, use the GitHub API to obtain information about the repo to be
cloned, and automatically use the `ssh:` protocol if the repo is private
or if the current user has push access to that repo.

Fixes #212, fixes #213