Add Caching into new Bamboo

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.