Rewrite everything

This is a complete rewrite. The idea here is that I've implemented all the functionality, and now I want to design the interface. I settled on using lenses. The readme has all the examples. I think they're pretty clean.