function hasNotTimedOut(entry) {
            return entry && (Date.now() - entry.time) < refreshTimeout;
        }
Options:
- persistent: save to local storage
- fallbackCache: attempt HTTP call first, if it fails use cache
- refreshTimeout: (in seconds) use cache if cached more recently than the timeout,
                  otherwise attempt refresh, if it fails, use cache anyway