Added a convenient helper function to the Scala cache api to deal futures

Added a convenient helper function to the Scala cache api to deal futures caching futures. Any future which has a failure will not be cached, this is extremely useful when working with Play WS and we don't want to cache exceptions such as timeouts.