19471: Add caching

I think this still needs testing, but I implemented it to help us with the schedules theme, and I think it almost completes this ticket

https://jira.dev.bbc.co.uk/browse/IPLAYER-19471