Keys can no longer contain '#' characters.

Fixes #46.

This will invalidate previously valid TOML documents which use '#'
characters in a key name. Hopefully nobody did this.

[breaking-change]
Return the error and move it into a more logical place.
Keys are allowed to contain whitespace.

Fixes #45.

This is not a breaking change. All previous valid TOML documents
are still valid.
Fix a nasty bug where an unclosed table name caused the lexer to
not terminate.
test: add test for scientific notation for floats
lexer: add support for scientific notation for floats
lex: fixup comments