Fix trailing whitespace.
Modify key rule to include special characters.

TOML keys should be able to contain special characters. Modify key
rule to include special characters such as #, ? and ! from the
second character onwards.
Add support for parsing a fully formed TOML string.