Add information for AFTER EACH ROW triggers during planning time.
Teach FDW to leave out scan clauses selected for push down.

This allows the Informix FDW to drop clauses from the local
filter condition, so that the backend doesn't re-filter again.
Revisit construction of pushdown predicate expressions.

Formerly, the Informix FDW just blindly deparsed PostgreSQL
expressions and pushed 'em down to the foreign server in the hope,
it can be handled somehow. This works with simple datatypes, but
will end up not very usable with more complex expressions, once we
want to support them.

So revisit the way how ifx_predicate_tree_walker() generates the predicate
string and make it smarter for future improvements. In particular,
ifx_predicate_tree_walker() now understands three different states
of deparsed pushdown expressions:

- IFX_DEPARSED_EXPR for simple expressions which can be safely deparsed
  without special handling
- IFX_MAKE_COOKED_EXPR for expressions which need a multi-state deparsing
  scheme
- and IFX_COOKED_EXPR to tell if a given cooked expression is final.

There's only one example which uses this infrastructure which is deparsing
expressions like <VAR> <OP> <TEXT_CONST>, where <OP> is a supported
pushdown operator (e.g. = or LIKE). However, with this in place, future
improvements are easier.