Support expiring a given material (fix #6)

Also, have RedisStorage to use redis for expiration times (fix #4)