Added Dalli store, and caching for all views

We're running on Docker containers on a tiny server, so I wanted to reduce the load on it a bit with view caching.

- Added Dalli and ConnectionPool gems.
- Added Dalli config based on ENV var present in our Dokku setup, using the connection pool size from our Puma config.
- Added a few helpers for collection cache keys.
- Implemented "Russian Doll Caching" in all our views where possible.