Fixed schema caching.

Previously, a non-persistent counter would be used as part of the
cache key, and changes made to this counter in one process would
obviously not propagate to other processes.

Instead, the cache key now includes the schema and subtypes which are
both retrieved from a FTI-specific volatile cache that uses the
modification time as its cache key.

Note that the tests are failing in this particular changeset. It's a
little tedious to instruct the mocker to respond naturally to the
volatile caching attempts. Maybe the passthrough-mode can be used,
combined with a single test case that examines the cache invariant.
Allow for the disabling of the schema cache (for testing purposes), and fix some expectations (we now expect more schema lookups in the test since the schema cache is disabled).
Fixed a bug in malthes rewrite of the schema cache, since invalidate on the schema cache can be invoked for a non-registered FTI, which caused an error, furthermore invalidate schema was called for an unregistered FTI, which was definitely also a mistake.
Fixed schema caching.

Previously, a non-persistent counter would be used as part of the
cache key, and changes made to this counter in one process would
obviously not propagate to other processes.

Instead, the cache key now includes the schema and subtypes which are
both retrieved from a FTI-specific volatile cache that uses the
modification time as its cache key.

Note that the tests are failing in this particular changeset. It's a
little tedious to instruct the mocker to respond naturally to the
volatile caching attempts. Maybe the passthrough-mode can be used,
combined with a single test case that examines the cache invariant.
Allow for the disabling of the schema cache (for testing purposes), and fix some expectations (we now expect more schema lookups in the test since the schema cache is disabled).
Fixed a bug in malthes rewrite of the schema cache, since invalidate on the schema cache can be invoked for a non-registered FTI, which caused an error, furthermore invalidate schema was called for an unregistered FTI, which was definitely also a mistake.
Merge branch 'schema-cache-fix' of github.com:headnet/plone.dexterity into schema-cache-fix
Merge branch 'attribute-lookup-optimization' of https://github.com/plone/plone.dexterity into schema-cache-fix
Merge remote-tracking branch 'headnet/schema-cache-fix'
remove .mo file which should be ignored
fix changelog