Refactor implementation to later simplify making an optimization [for the C++11 allocator case] for when sp_counted_impl_pda destruction invokes the allocator's destroy function instead of the type's destructor.