Cut another interdependency between the Queues and the rest: it is no longer necessary to add DNodes to PostprocessQueue to rearrange the Nodes by buckets. The rearranging is now done on next render instead.
Make DistortedEffects oblivious of the effect types.
Cut one interdependency between the EffectQueuePreprocess and DistortedNode
Carve the 'children list' from DOutputSurface and DNode into a separate class of its own, DistortedChildrenList.