Replace FTI counter with FTI's modification time

The actual implementation is slightly indirect: we cache the results of ``get`` and ``subtypes`` as volatile attributes on the FTI which corresponds to the provided ``portal_type``. The attribute value included the ``_p_mtime``.

Then, in the implementation of ``FTIAwareSpecification``, we include the schema and the subtypes in the cache key. The ``_p_mtime`` isn't sensitive enough because of the explicit invalidation logic that should still take effect (because the ``_p_mtime`` is updated only on the transaction boundary).