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
Yes, ideally, when instantiating bamboo, one would pass the caching service, which should implement this simple load and save interface.