INSERT INTO ... SELECT multi-partition and ad hoc support

For insert-into-select testing, generate lots of single- and multi-partition stored procedures with different combinations of partitioned/replicated tables, with and without parameters.  Generate ad hoc statements too.

Implement replicated/replicated support for insert-into-select.

Make PlanAssembler handle insert subqueries with same mechanism used for select subqueries.

Create InsertSubPlanAssembler to help infer partitioning info for INSERT INTO SELECT statements.
hasAnyNodeOfType() function on the AbstractPlanNode does the same thing. So you do not need the countSendNodes() function.