The first few patches will introduce temporary leaks or cyclic refs, but that's because we'll handle them properly with the dispex CC, and the last patch should fix this. Other objects' traversal will follow in another MR.
-- v2: mshtml: Traverse inner windows. mshtml: Traverse variants using a helper function. mshtml: Implement Cycle Collection for dispex without traversal. mshtml: Implement Cycle Collection for outer windows. mshtml: Use unlink and destructor in the vtbl for HTMLLocation. mshtml: Separate the HTMLLocation from the outer window. mshtml: Use unlink and destructor in the vtbl for PerformanceTiming. mshtml: Move PerformanceTiming related fields to the window. mshtml: Move PerformanceNavigation related fields to the window. mshtml: Use ASCII strings for dispex object names.