Eng 6396 upsert ad hoc

It seems like or an `UPSERT` with a subquery that produces order-non-deterministic results, the statement should fail to compile---if two rows attempt to create a row with the same value for the primary key in the target table, then the order in which they are produced can create differences in which rows are inserted/updated.

Currently the check for non-determinism in DML is at the end of `PlanAssembler.getBestCostPlan`.  I think this check should be made more strict for `UPSERT INTO ... SELECT`---just verifying content determinism is not enough.  The subquery must be order-deterministic too.