Add a maximum cache size of 4000 elements

- "garbage collection" occurs every 30 seconds, clears out least-recent elements over the 4000 limit, as well as elements that have expired past their ttl.