Add abc::memory::conditional_deleter::enabled() and templated constructors
Move abc::str_base_::c_str() to abc::_raw_str to de-template it
Sort methods
Rename variables for semantics
Make operator() template for freeing_deleter and conditional_deleter
Change abc::memory::free() to accept a pointer-to-const, just like delete does

While operator delete() is declares as accepting non-const only, invoking
delete on a pointer-to-const is allowed to mirror the automatic
deallocation of a const, stack-based local variable.
Use abc::memory::freeing_deleter in abc::*str::c_str_pointer, fix double-free
Add test cases for abc::*str::c_str()