Add Caching into new Bamboo

https://jira.dev.bbc.co.uk/browse/IPLAYER-19471
This variant leverages the Guzzle underbelly of Bamboo and expects an implementer of Bamboo\CacheInterface (Guzzle\Cache\CacheAdapterInterface) passed into setCache. This leaves the implementation of the cache pretty much entirely up to whatever is calling Bamboo.
Does everything work as now if no cache is passed in?