Use smaller integer types for parse table
Remove magic number from generated symbols enums

The symbol numbers 0 and 1 are reserved for 'error' and 'eof',
so the grammar's start symbol is always 2.
Represent state ids as unsigned shorts

This fixes some signedness conversion warnings