Nice tests
Fix higher-order template expansions

Replaces the old Generator interface with a CaptureIterator.
Symbol usage during expansion is tracked on the call stack in order
to determine which iterators to advance on repeat expansions.