Reorganize and set up cabal

Now builds with cabal build.  Must run cabal configure first.  Also, cscheid, you may wanna tighten the versions in the dependencies at some point.  Also note that I liberally renamed stuff :-).