Fixed bug with lexer increment

Comment now matches 2 characters correctly.
Fixed bug with lexer unlayout

No longer infinite loops. Lexer now lexes all test files correctly.
Added missing stmtlist productions
Now compute all first sets ahead of time

Rather than recomputing every time we need a closure.
Rewrote debug functions

Debug now does *nothing* when turned off rather than sprintfing the string and
then eating it with a conditional. Should be much faster.
Split parser generator into 2 components

Now (1) generates the action / goto tables and writes them into a source file
and (2) links with and uses that source file to simulate the resulting
automaton (ie actually parse things in the final compiler)
Modified generator to output "Conflict" action

Parser generator can now output tables even for an ambiguous grammar, grammar
will just contain lots of "Conflict" actions which need to be resolved by hand.
Moved print functions for core types

In separate file now. Easier to import and use.
Nonterm printing now reflects correctly

Can be used to generate code
Commented out lots of stuff

source now compiles, test cases not so much. Need to build and run
generate-main first, then can get old stuff working again.
Commented out even more stuff

Yay everything compiles now ish
Finished code to generate action/goto code

Works, but too many conflicts. Need to figure out what's going on.
Removed duplicates from grammar

So much typing, it was inevitable
Refactored action table generator

Resolves ALL shift-reduce conflicts in favor of shifting. This had better work.
Fixed R-R grammar conflict

Removed empty topdecl list production. The empty haskell program no longer
parses as valid.
Fixed another grammar bug

type declaration starts with the keyword 'type', not a type nonterminal.
Copying things when tired is hard.
Fixed bug in action table generation
Fixing up "fake terminals" in grammar

(q)tyvar, (q)tycon, etc all have to go. Causing lots of weird ambiguities.
Another grammar redundancy / ambiguity fix
Fixed bug introduced in import/export fix

Need to merge qtcon ( cname, ...)
with qtycls ( qvar, ...)
so can have qvar or qcon (and then check for correctness later)