In executor context, outerPlanState(node) is the same as
node->ss.ps.lefttree. We follow this in most places except a few. This
patch clean up the outliers and might save us a few instructions by
removing indirection.
Most of changes are trivial. Except I take out an outerPlan nullable
check in grouping iterator - as a it surely has a left child.
I noticed that we mixed use "node" for plan node and plan state. While
changing it can make code clear, but back patching could be terrible.
Regards,
Qingqing