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.
Are you planning to make this implement the [`Error` interface](http://blog.golang.org/error-handling-and-go)?