refactoring test functions
parser comment
detect unused attrs in one more place, allow parsing to continue for all

changed a bunch of fatal()'s into err()'s, to allow parsing to proceed.
hygiene infrastructure.

- added a hash table to memoize rename and mark operations.
- added rename, mark, and resolve fold fns
getting rid of interner_key! macro
added and rewrote text for 'do' and 'for' loops
auto merge of #6559 : jbclements/rust/hygiene-fns-and-cleanup, r=jbclements

This includes new, tested, hygiene support functions. It also removes the interner_key! macro and replaces it with a function, which should be inline-able. It also contains some parser patch-ups and some docfixes.

On my machine, this patch passes all tests.