Lots of changes, added scalaz, calculate F-Desc.

Did lots of minor refactoring to make the code easier to work with in the class
LexicalFunctionalGrammar. I realized that I needed the State monad to implement
the F-Description resolution nicely, so my spirit finally broke and I added
scalaz as a dependency. Now the F-Description implementation is done and it
isn't tested but who has time for that??? The type system did most of the
testing, for goodness's sake.

Future plans:
  - Move the F-Description resolution code to the AnnotatedAST class.
  - Consider changing productions or ASTs to have NonEmptyList as children.
  - Figure out how to implement empty productions in the CFG.