What's the best way to allow threads to independently allocate/deallocate resources?
Sticking Allocator in an Arc<Mutex<Allocator>> means that only one thread can allocate/deallocate a resource at a time.
Does it make sense to use a separate Allocator per thread in a thread-local? How are the underlying descriptor pools managed?