Move FuturePools into a single global object so threads get shared across Index, Storage, and Aggregates