Use LRU cache to avoid querying stale timeseries

This dramatically reduces disk queries especially for rule queries (which usually either hit memory or tried to read very old stale data from disk before). As a result, query queue wait times are improved by an order of magnitude.