Fix https://github.com/julianhyde/optiq/issues/301, "Add `Program` interface, a planner phase more general than current `RuleSet`".
Fix https://github.com/julianhyde/optiq/issues/302, "Use heuristic rule to plan queries with large numbers of joins".