add Module.prototype.writeBitcodeToFile
use optimized llvm stuffs until/unless there's a reason not to
use atomic_comp_swap to add to the finalizer list.  run the finalizer every 200us, and use comp_swap there to swap away the finalizer list.
there's no need to walk the list for this op..
compress _ejs_primstring_flatten a bit by not duplicating the clear/set_type
comment out the remainder of the propertymap spew
a few optimizations:

1) this one is pretty gross, but since property lookups go through the runtime (no ICs yet),
   copy the esprima syntax properties to local-to-file bindings.  This converts them to a closure
   env lookup instead of a property lookup.  Closure env lookups are *fast* compared to properties,
   being simply N+1 pointer derefs where N is the depth of the environment stack at the use.

2) stop doing so many string concatenations when those strings are used as keys for property lookups.

3) stop doing so much with llvm alloca's.  There are some situations where we absolutely need them,
   but in many cases we can just use the value and that saves us at least 2 llvm calls (store+load).
we need to prepend 'atom-' when dealing with our string literals,
because the literal could be __proto__.  Revisit and fix when we support
ES6 Maps.