Use Unique ptr wrapper where Send ptrs are required

Send is no longer inferred for raw pointer types. This uses the new ptr::Unique wrapper to make them Send again where necessary.