Fix multiple problems in postgres_fdw query cancellation logic.
Fix multiple problems in postgres_fdw query cancellation logic.

First, even if we cancel a query, we still have to roll back the
containing transaction; otherwise, the session will be left in a
failed transaction state.

Second, we need to support canceling queries whe aborting a
subtransaction as well as when aborting a toplevel transaction.

Etsuro Fujita, reviewed by Michael Paquier

lisakowen/gpdb,50wu/gpdb,jmcatamney/gpdb,lisakowen/gpdb,lisakowen/gpdb,ashwinstar/gpdb,xinzweb/gpdb,ashwinstar/gpdb,ashwinstar/gpdb,adam8157/gpdb,adam8157/gpdb,adam8157/gpdb,lisakowen/gpdb,50wu/gpdb,xinzweb/gpdb,greenplum-db/gpdb,greenplum-db/gpdb,xinzweb/gpdb,50wu/gpdb,adam8157/gpdb,jmcatamney/gpdb,greenplum-db/gpdb,50wu/gpdb,adam8157/gpdb,50wu/gpdb,50wu/gpdb,50wu/gpdb,greenplum-db/gpdb,greenplum-db/gpdb,lisakowen/gpdb,greenplum-db/gpdb,greenplum-db/gpdb,ashwinstar/gpdb,jmcatamney/gpdb,xinzweb/gpdb,jmcatamney/gpdb,adam8157/gpdb,adam8157/gpdb,greenplum-db/gpdb,jmcatamney/gpdb,jmcatamney/gpdb,jmcatamney/gpdb,lisakowen/gpdb,adam8157/gpdb,lisakowen/gpdb,lisakowen/gpdb,jmcatamney/gpdb,xinzweb/gpdb,ashwinstar/gpdb,xinzweb/gpdb,xinzweb/gpdb,50wu/gpdb,ashwinstar/gpdb,ashwinstar/gpdb,ashwinstar/gpdb,xinzweb/gpdb