Cache the workout log's data

This commit adds a cache to both the HTML and the log lists needed to render
the calendar view. Depending on the amount of logs to display, this reduces
the number of queries from 600 to around 20.