feat: optimize caching when TTL is zero (#4825)* fix(sqlitecache): do not remove unexpring entries; extra fixesFixes prune() removing entries with expiration time set to 0,which are meant to be kept forever.Additionaly:- use explicit bind types, don't rely on affinity- do not assign result value, we don't use it anyway- on result->finalize() comment: it would be needed only if we reused the statement in another invocation. Since we don't, it's not needed.- enable the index on updated column: there's no harm and it can speed up pruning substantially.- add catch block in prune()- some mild refactoring* feat: optimize caching when TTL is zeroCurrently setting the feed's cache TTL value to 0 will still save a copy of that feed to cachewith an expiration set to now. This is needless, since it will never get a chance to beretrieved.This change fixes that, together with some slight optimizations based on the assumption thatTTL=0 disables caching.It also updates the docs on caching explaining this behavior.