Perform distributed planning in the calling memory context
Perform distributed planning in the calling memory context

Previously we used, for historical reasons, MessageContext.
That is problematic if a single message from the client
causes a lot of statements to be planned. E.g. for the
copy_to_distributed_table script one insert statement
is planned for each row inserted via COPY, and only freed
when COPY has finished.

citusdata/citus,citusdata/citus,citusdata/citus,citusdata/citus,citusdata/citus