- Remove optimize() from document_source.h
- Make every optimize() implementation public/ non-virtual
- Register each optimize() call as its own unconditional rule (lower-priority than doOptimizeAt rules!)
- Remove optimizeEachStage, this is now handled by RBR