move interner_key macro
better error message on failure to parse type
added MTWT functions
add self.token_to_str and is_any_keyword convenience abstractions
auto merge of #5908 : jbclements/rust/add-hygiene-machinery, r=graydon

This pull request changes the representation of identifiers by adding an integer to the side of each one.  This integer will eventually be a reference to a side-table of syntax contexts, presumably stored in TLS. This pull request also adds a bunch of utility functions required for hygiene, and associated tests, but doesn't actually deploy those functions.

Finally, it also has a number of small cleanup items.