Currently, many parts use LogicalNode::toString() for explaning plans. But, we already have ExplainLogicalPlanVisitor class to generate pretty print strings.
This patch improves logical planning related parts to use ExplainLogicalPlanVisitor instead of toString().
For this, I added PlannerUtil::buildExplainString for generating pretty print explain strings and simplified obsolete toString() methods of all LogicalNodes.
It much improves the readability of explain string. I expect that it would be helpful for debugging and users' understanding of query plans.