CLC-3696 Improve smart_fetch by caching failures for a short time

JIRA: https://jira.ets.berkeley.edu/jira/browse/CLC-3696

Not much direct test coverage of smart_fetch_from_cache, but I am pondering ways to improve in a followup PR.