WIP: Filter cache

use a cache to avoid recomputing filters during dirty-checking.

delivers 3x speed improvement for number filter, but makes the uppercase filter 20% slower

TODO:
- more benchmarking
- special case dates since they are not primitives but can be cheaply compared via `getTime()`
- decide on whether to make the cache an opt-in or an opt-out