Queue gets until cache ready

this is a sequel to #509. instead of checking if the cache is ready and going to remote if not, what this PR does is to administer a list of promises, which get fulfilled whenever a part of the cache becomes ready.