Cache expiration

Cache will expire:
if older than a specific date
if older than a number-of-days
if not previously set with a date

Updated unit tests for the same