Rename close_item_set -> item_set_closure
Fix parser position in parse error messages
Compute FIRST sets correctly
Remove ItemSet class; just use a set
Make separate Item classes for parsing and lexing
Rename next_{terminals,non_terminals} to first_set and follow_sets

This is to prepare for keeping track of lookahead symbols as part
of computing follow sets
Move stream operators for container types to separate header file
Print expected symbol names in parse errors
Do less work when loading build_tables spec
Fix errors in item set transition computation
Treat end of input like a normal token
Manage lookahead symbol correctly after a reduction