Add `make` function

There’s a lot of weird picayune details about allocating with
`std::allocator_traits` that this handles.
Use weak pointer properly.
Permit `counted_t`s to take deleters and arbitrary Allocators.