DRILL-2958: Move Drill to alternative cost-based planner for join planning.
1. Add a new RelMdDistinctRowCount MetaDataProvider.
2. Resolve issue related to RelMetadataProvider, when querying view (Since view expander will create a different RelOptCluster).
3. Catch CanNotPlanException in Physical Planning as well, since we allow DrillJoinRel to be Cartesian Join, which then pass into LOPT planner.
4. Return none-infinite cost for Cartesian DrillJoinRel.
5. Ruleset change. Only use Join permutation (PushJoinPastThroughJoin) rule in the existing planner. LOPT planner will not them.
Code clean up.