Refactor to have a general Presenter interface (for GitHub, code.google.com, etc.).

There should be almost no functional changes, it's just a refactor to have a nice general interface for various backing sources of Go packages.

Hopefully, this will make it possible for someone to contribute a presenter for code.google.com packages, since they're pretty common. Does code.google.com even have an API?