Implement smarter handling for mapping foreign table columns.

The old implementation was a little careless regarding dropped columns
and mismatched column lists. Introduce an internal attribute number mapping
to match local and foreign column attributes. Also introduce a better error
handling when having dropped columns on a foreign table. Adjust regression
tests accordingly.

The new implementation requires the access of informix column attribute
numbers through PG_MAPPED_IFX_ATTNUM(), which is also encapsulated into the
various IFX_*() macros. This makes some parts of the code more complicated
(like the conversion routines which access the Informix tables all through
attribute numbers), but allows much more flexibility. E.g. i'm planning
to support dynamic target lists in the future to filter out not required
columns when selecting from a foreign table. The infrastructure as committed here
doesn't really address all issues which need to be done for this feature, but it
basically introduces some ground we can start with.