Add support for RETURNING clause in DMLs

The patch does the following major changes

1. Modifies the DML planning code to send the shippable part
   of the returning list to the datanodes in the remote query.
2. Modifies the var references in returning list according to
   the target list that was sent to the datanodes since the
   tuples returned from the datanodes will contain vars in
   that order.
3. Modifies remote query execution to make sure that a single
   response is accepted in case of DMLs on replicated tables
   with returning lists.
4. Manages the fact that a DML can return tuples during remote
   query execution.
5. Manages null tuples received from datanodes while counting
   modified tuples.
6. Uses projection mechanism to show returned tuples
7. Adds test cases.

Special thanks to Ashutosh for reviewing the patch.
The patch allows xc_maintenance_mode to use DML in execute direct and
direct connection to datanodes.

Xc_maintenance_mode can be set to on only by superusers and it cannot
be set to on in postgresql.conf or postgres/pg_ctl command line
parameters.   It can be set only in a session.    This extension
maintains its safetiness and allows (only) DBA to cleanup XC cluster
state without reconfiguration.

	modified:   doc-xc/src/sgml/config.sgmlin
	modified:   src/backend/access/transam/xact.c
	modified:   src/backend/parser/analyze.c