Reorganize EVERYTHING to be more go... ish.

I'm trying to match normal go practices with my code organization. It's
a little weird since this is a library *and* an executable, and I used
this post to help me organize that:

https://medium.com/@benbjohnson/structuring-applications-in-go-3b04be4ff091

We'll see how it goes.