Non-reserved words can be used as identifiers (#127)
Previously all <key words> (which includes reserved and non-reserved
words) were disallowed as identifiers. Looking at the SQL standard more
closely, it does explicitly state that reserved words cannot be regular
identifiers using and case, but nowhere does it state that non-reserved
words are not allowed to be used as identifiers.
This is an import distinction because `public` is a non-reserved word
and we intend to use it for the default schema and also for
compatibility with the same schema in PostgreSQL.
Also, comments can now be placed in `grammar.bnf` with a `#` at the
start of the line (not within a line).
See #103