Fix typo when calling warnf()

Fixes #91.
Fix handling of stashed changes that are not last in the stack

The code handling the case where the stashed changes produced by git-hub
were not last in the stash was completely broken after a refactoring
done in 84fcb10bce6b3b617fce6922c640b2b699aadda5.

This should finally fix #91.
Don't abort install if global /etc is not writable

Fixes #93
setup: Use the configured username if present
setup: Reuse existing token, if we find one

When performing a setup, if a token already existed with a note
'git-hub', the command will just fail with a cryptic GitHub error.

This commit makes the `setup` command look for existing tokens first,
and if there is one, it reuses it.

Fixes #99.
setup: Warn the user if not in a git repo

When --global or --system is not used, the `setup` command should be ran
from a git repository, so the options can be stored in that particular
project's config. This commit improves the error message provided to the
user when this is not the case.

Fixes #100.
Properly set hub.forkremote when using clone -t

When using the triangular workflow, git-hub should push to the fork
instead of origin when creating new pull requests, and for this
hub.forkremote has to be properly set.

Fixes #106.