Effects:
Constructs a pool resource object that will obtain memory from upstream
whenever the pool resource is unable to satisfy a memory request
from its own internal data structures.
The resulting object will hold a copy of upstream,
but will not own the resource to which upstream points.