Add a python instance cache invalidation mechanism.

Before this, a cached FDW instance would be kept until the death of the backend.
This patch caches a list of options and a list of column definitions to be
compared against the current set of columns / options of the foreign table. If
they don't match, the cached instance will be replaced by a fresh instance using
the new values. Fix #11.