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
added new block expand fns
change to newer macro escape mechanism, using uints in more places
comments & whitespace
starting to add sexp encoder
part of macro scoping redesign
move stmt expansion code
bugfixes, add get-names-from-pattern fn (and test case)
working on adding let-renaming
parser comments
adding fresh_name_fn
bugfixing
removed obsolete reference to purity
rename repr to name
removed some interner fields
changed representation of some tokens to be just interned strings rather than idents

also, clean up unused pass-around-interners
@ -> & on strings