cache: clean up expired keys as we see them
Add tests for expireCache