Converted from sessionStorage to localStorage.

Added logic to check is cache is "stale" (20 min),
and re-send ajax request if so.
If rate limit hit, ignore freshness of cache