Redesign transaction handling in preparation of new FDW API to support DML.

This includes various changes on connection caching and the way
we handle transaction start and commit/rollback on the remote
Informix server. The cached connection handle is teach to carry information
about the current transaction state during foreign scan. Rollback
and committing the remote transaction occurs by introducing an XACT
callback used by PostgreSQL Xact commit/rollback.

Some of the current implementation is inspired on how the new postgres_fdw
handles this, but certain areas vary. We also want to support pre-9.3
versions, so we need to special case the code in the callback, for example.

The IfxCachedConnection structure is redesigned and splittet into
a IfxPGCachedConnection structure, which is now a derived member
field in the former structure. This is required since we still can't
include Informix headers directly in the PostgreSQL backend code and
we don't want to violate our strict casing of ifx_connection.ec (e.g.
we can't use the former definition of IfxCachedConnection directly
since it includes an Oid field definition not recognized within the
Informix API).

The IfxConnectionInfo structure, used to transport session specific
connection information during foreign scans now stores a scan_mode
member, specifying the current state of the scan. This allows to react
on certain stages of the scan on the connection cache for example (it's
used there for now exclusively, but maybe other use cases will be found
in the future). Furthermore, instead of relying on IfxConnectionInfo
structures during connection setup, use the IfxCachedConnection handles.
This saves us in copying various transaction states, which would be very
hard to get it right anyways to keep the correct state of transactions.

ifx_fdw_get_connections() displays additional fields to get some
additional information about connections wether a transaction is in
progress and statistical information about them. This is not compatible
to former versions, but since we haven't released any version yet i
don't bother for now (that means no update script available yet to update
an existing older version of this extension).