Fix byte compilation

Some refactoring to fix #3.

Gets rid of some cruft left over from Cask, and attempts to move definitions around and add proper `require`s to make all files compile cleanly.

The `package.el` related warnings from #4 cannot easily be avoided, though, so I tend to just ignore them.  We won't support Emacs 23 infinitely anyway, so we should put too much effort into it.