Optimize caching with Rack::Cache

Use Rack::Cache to serve and cache static assets, and to serve API
responses from cache based on the Cache-Control header age value, which
can be set via the EXPIRES_IN config var (1 minute by default).