Allow fetching over ssh

While we need the github API to enumerate the repositories, there are
advantages to doing the actual repository fetching over ssh.

1. The authentication details are decoupled from the repo. The repo can
be given to any other individual knowing there are no secrets in it.

2. Git is more efficient over ssh than http
(http://git-scm.com/book/ch4-1.html), which could make a big difference
when fetching many repos.

The drawback is that it requires another authentication mechanism to be
setup.
Allow fetching of wikis from github

Wikis for github repos are themselves git repos, but they are not
exposed in the repos API. However, we do know that the wikis are simply
the original repo with ".wiki" appended to the name. If the user has
specified --include-wikis and the repository claims to have a wiki, add
a tweaked wiki repo to the list and fetch it.
Don't fetch the repo JSON when we already have it

We've already gathered the JSON for all the repos in update(), so
there's no need to fetch it again in update_repo(). Just pass it the
full repo dictionary.
Return exit code, stdout and stderr from system_exec

Gives the caller a little more useful information than just returning
"Unknown" on failure.
Only raise system_exec exception when not ignoring errors

Makes the code a little cleaner and avoids an exception when the caller
is expecting a failure. With dd09550, the caller has all they need to
handle failures.
Make exception error messages more readable and print to stderr
Handle failing wiki repo clones

It turns out that the has_wiki attribute of the parent repo is not a
full indicator of the wiki's existence. If the wiki has never been
initialized, then it may not exist and the clone will fail. Catch this
situation by skipping clone errors if we're processing a wiki repo.
Allow the token to be read from a file

Instead of specifying the token on the command line (and leaving it open
for easy snooping), allow the token to be read from a file. If no token
is specified on the command line, then the file at ~/.config/ghtoken
will be read. An alternate file can be specified with the
-t|--token-file option.

Syntax for the token file itself is simply the token string with only
leading and/or trailing whitespace as additional characters.
Merge pull request #2 from dbnicholson/master

Wiki fetching + various fixes