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.
Actually, I must have been mistaken.  I had thought that we could plan queries like
```SQL
SELECT COUNT(*) 
FROM P1 
INNER JOIN (SELECT 2 as D, P3.F 
                        FROM P2 INNER JOIN P3
                        ON P2.A = P3.A
                        WHERE P2.A = 4) AS sq
ON P1.A = sq.D
```
But these don't seem to be plannable.  It seems like you can't use a constant in the select list of a subquery to help refine the partitioning.  Is this a bug?