Support linting remote GitHub projects via the API

A pretty big chunk of changes, this PR provides support for linting remote projects by passing `--github owner/repo` in the command line (so you don't have to clone the project locally). I want to use some of this code in a small web app, so I tried to separate the CLI stuff from the rest of the library.

Since I'm still learning idiomatic Go, I'd :heart: some :eyes: from @penland365, @jingweno, and @rubyist if y'all have the time.
Looks like a more powerful alternative to github.com/bmizerany/assert. Will consider using it in the future.