cleanup autoPtr, tmp, xfer
- Some constructors and methods can be constexpr, noexcept.
- most places have a const copy constructor that steals the contents. Could/should be revised to use a universal reference and prohibit const copy (as per std::unique_ptr).