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.
For MP case, could you also add test cases to INSERT on coordinator, like 

INSERT INTO P1 SELECT 2, P3.F FROM P2 INNER JOIN P3 ON P2.A = P3.A;
OR single table case, like: 
INSERT INTO P1 SELECT 1, P2.E FROM P2 GROUP BY P2.E ORDER BY P2.E ;