Reorganize everything!

Before the v0.1 release, I wanted to dial back our public headers. As part of the process, I got a bit carried away with reorganization.

Fixes #9.