Fixed small bug with token types

Added VarId, ConId, VarSym, ConSym
Wrote a bunch of basic test cases

Tests correct tokenizing of some basic input lines. Haven't tested
comments, escape sequences, or whitespace layout
Merge branch 'lex-test' into parse

Conflicts:
	src/lex.ml
	src/lex.mli
Added EOF token from parse in addition to non-Q tokens from lex-test.
Changed to correct module naming conventions

TermSet -> Term_set, etc.
Renamed symbol variant constructors

Terminal -> T, Nonterminal -> NT
much easier to type out a CFG
Switched functorial -> polymorphic sets

Fixed up dummy code in main accordingly. Now actually does something (not very
much, but something anyway)
Rewrote makefile for debug build

Uses ocamldebug on bytecode executable
Wrote some basic parser generator test code

Tests are failing on shift-reduce conflict, no idea why. Need to write some
print statements and find out.
Wrote dbg function

Prints debug output to stderr if flag is on. Uses sprintf2 so that standard
Batteries unparsers will work correctly.
Wrote a bunch of debug/print code

Uses fprintf %a format string interface to easily print
all sorts of interesting objects / records / variants.
Fixed serious bug in parser generator CC code

Although itemsets in CC are each "closed", they are NOT necessarily disjoint.
The closure of one set can strictly contain a smaller set which is still
closed, so we *cannot* check if itemsets we generate in the CC algorithm are
new by just checking 1 element. We actually need to compare the sets for
equality.
Added some more print statements
Added even more debug statements
Fixed bug in conflict detection

Now only reports conflict if tries to fill action table entry with 2 different
values (filling twice with same value is fine)
dbg now flushes
Fixed bug in goto step of CC building

Was only considering terminal symbols after dots when generating gotos, but
should really be considering all symbols. Apparently I can't read.

So building the GOTO table after the CC is built is really easy.
Fixed bug in test cases

Token streams should end in EOF
Fixed lexer test cases to use EOF

They pass again