Big monad refactor.

Now the signature is abstracted over a MonadTerm, which cuts down
on the wrappers for TC.
Add .gitignore
Add .ghci
tc => tog
Remove warnings
Output an error if there are unsolved metas after checkProgram
Make test command work again.
Make the solver a dynamic option.
Comments, naming.
Kill test specific code in the executable.

We can do everything with tog -q.
Remove imports in Main
Add make target for module graph.
Add TAGS target to Makefile.
Style in Simple solver.
Eta-expand contexts also in TwoContexts.