Add support for specifying a particular kind of memory when creating a `Tensor` or `DistTensor` (e.g., pinned memory). Probably this is a new constructor argument that tells the underlying `RawBuffer` what allocator to use.