Add a .cabal file.

I ran `cabal init`, and then committed all of the changes. I hope I didn't screw
anything up too badly.