Currently handlers.llm contains a somewhat half-baked implementation of API call caching in handlers.llm.providers. We should offload all of this to LiteLLM's built-in caching mechanism rather than trying to maintain it ourselves unless it becomes clear that we need some additional behavior.