Get a deferred that fires when both metadata and sync is finished
I was thinking that it'd be very useful, from the client perspective, to have a single deferred to wait for that announces when the whole 'sync' has been completed.
maybe a very simple way of doing this would be to have the blobmanager keep a list of ongoing deferreds (that would have to be flushed at some time!).
does this make sense? I think it would be superuseful for a quick benchmark, to begin with. actually, I don't know how we can instrument tests (or probably some other more practical code) otherwise. it's true that we can defer getting the content docs in practice, and even return the deferred for the download, but still I think we want to be able to signal a "completely synced" state (to be able to transition to offline, for instnace).
return gatherResults([sync_deferred] + [d for d in copy(blobmanager.ongoing_deferreds)])