Delay various runnables during ICC to avoid weak resurrection.

WindowDestroyedEvent, ScriptProcessorNode, PlayingRefChangeHandler.

I don't think these are really going to run multiple times, so they may not matter much in practice.
Only invoke the nsJSEnvironment CC hooks on the main thread.
Disable ICC using a pref
flush snow white objects at end of non-ICCs

This is needed to keep the feeds make check to take an extra CC cycle, for some reason.
minor indentation fix
Rename CC STATEs to Phases
Eliminate GCGraphBuilder::mWeakMaps
Move NodePool and EdgePool clearing into their destructors.
Add AutoBool class for mScanInProgress
Move ptrToNodeMap from the graph builder to the graph
fix indent in gcgraphbuilder
Move mGraph from builder to nsCC
hide mGraphBuilder::mGraph
Convert GCGraphBuilder::mGraph to just a pointer
Make WalkFromRoots take a raw pointer, remove some comments
eliminate late uses of mGraphBuilder and null it out when not building
change CC: to cc: to make less spurious diffs with trunk
Do not need a FreeSnowWhite in FixGrayBits as we have one in the post-GC hook