If a “range” or “difference within range” check currently results in a violation, but will change to compliance within the configured cache TTL (or vice versa), don’t cache that result. (Which means, since we cache results per-entity, that we kill caching completely for that entity.)
(Note: it would be easier to just never cache constraint check results for ranges involving the current time, but then I suspect we would lose a lot of caching. Since most violations will probably not change within the cache TTL, this approach should be better.)
- unrelated small things I noticed while working on this: unused methods, parameter name, variable name
- [TimeValueComparer](https://gerrit.wikimedia.org/r/411236)
- [NowValue additions](https://gerrit.wikimedia.org/r/411237)
- [future time in DependencyMetadata](https://gerrit.wikimedia.org/r/411038)
- small helper function
- [RangeChecker](https://gerrit.wikimedia.org/r/411041)
- [CachingResultsBuilder](https://gerrit.wikimedia.org/r/411248)