Add 5 second internal cache for the 1000 most recent GET requests

This makes the server able to handle 22,000+ requests / second on my Macbook Air:

% wrk -t 5 -c 50 'http://localhost:8080/by-offset'
Running 10s test @ http://localhost:8080/by-offset
  5 threads and 50 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     4.47ms   16.03ms 122.01ms   97.68%
    Req/Sec     4.79k     1.24k    9.07k    83.03%
  221562 requests in 10.00s, 113.47MB read
Requests/sec:  22154.16
Transfer/sec:     11.35MB