Make abc::thread_local_ptr::reset_new() offer strong exception guarantee
Reduce code duplication
Rename variables for consistency
Make abc::thread_local_ptr::destruct() symmetrical with construct()

At the cost of reintroducing some code duplication :(
Collapse overloads of abc::thread_local_ptr::reset_new() to reduce code duplication