remove FIXME #2888, now bug is fixed
added FIXME comment
drop back to a simple gensym approach for fresh-name.

this is necessary so that the new idents are connected to the original strings.
this is important both for error messages, and so that top-level refs get connected
to the right things.
comments
onelinecomment
use empty_ctxt to simplify downstream
test case work
re-add debug version
re-add lost call to expand_block_elts
test case work
test case support fns, remove debugging test case
new test that uncovers bug in fold
fixed bug in fold's traversal of cast exprs
added test for ptr_eq on fresh_name-generated idents
added gensym_copy mechanism to ensure sharing of pointers in the interner

this makes comparisons constant-time, and enables spelling-comparison
of identifiers, crucial in many parts of resolve.
added IterBytes for 4-tuples
marking on both input and output from macros. nice shiny new test case framework
fix to adding iterbytes for 4-tuples (merge with other commit)
add test case for macro token comparison
add test case for iterbytes on 4-tuples