WIP: Filter cache

use a cache to avoid recomputing filters during dirty-checking.

in the modified large-table benchmark delivers 3x speed improvement for number filter (apply duration), 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
darn it Lucas, how do you always find these corner-cases. you rock!