[BZ 1098243] [BZ 1149342] When encountering a timeout on StorageSession,...

If StorageSession encounters a timeout, it will recreate the RateLimiter with higher (growing up to 10 times the original value) warmup time to slowdown the rate growth. This is to allow the server to catch up with the resources, however it will not permanently reduce the available slots (this is left to the user).

Also, calls to anything that changes the ratelimiter are synchronized to prevent multiple changes from one timeout burst.