Pass in codegen as an entity to be recovered.
Cleanup cached constant (.str) from codegen.
80 cols
Improve consistency. IncrementalExecutor should use llvm by default.
Remove @_GLOBAL__I_a and @__cxx_global_var_init after running them.
Since we append the extracted decls in the transaction the wrapper must go last.

The reason is it introduces a fake dependency with which the unloaded chokes up.
Pass in codegen.
Remove the members first, because they might need the redecl chain.
Add a dead code removal pass. The test is expected to succeed now.

Removing a GlobalValue from the module might make other values (referenced only
by the one being removed) available for removal. Those should go as well. The
initial implementation is a bit greedy - it removes more: i.e dtors because they
are not referenced (because IncrementalExecutor takes care of them in an custom
way)
Invert order, because Dtor_Base calls Dtor_complete.
Collect properly the references and remove orphaned globals due to death of a GV.

Cleanup and optimize the code.
Reduce the noise in compareState.
Remove dead code.