localStorage wrapper with expiration time