add a genId export that actually returns the new id, and made all the other exports use it.
we already have an atom for this.  we should use it.
we don't need to register atoms as roots - they're flat strings outside the gc heap, so they're skipped during scanning anyway.
we (and node) can't output anything if we don't assign console.log to print
now that our gc doesn't suck so much, let's up this to 1000
if we're finalizaing a flat string, print out its contents.
add _ejs_string_init_literal - the compiler emits calls to this to initialize the literal strings in a compilation unit.
as of now, no literal strings are allocated from the gc heap.  they all live in the programs data segment and are initialized upon entry to the compilation unit's toplevel function (so basically at require-time for a given module).
include the EJSPropertyMap struct directly into EJSObject (instead of a pointer + an additional allocation.) the names/properties are still elsewhere.