Issue #3594129: Extract a shared base for the date cache plugins

Pull the common plumbing of the two date cache plugins into an abstract DateCacheBase and unify their cache-lifetime contract (int seconds, Cache::PERMANENT, or NULL to disable). Each plugin is reduced to supportedOperators() and computeLifespan(). Add a matching DateCacheKernelTestBase for the kernel tests and config schema for the date_filter plugin. Two behaviour changes for DateFilter: an empty view is now permanent, and datetime string columns are normalized as UTC.

Closes #3594129

Merge request reports

Loading