Make it easily possible to use a mutex for locking internally
This allows us to run the tst_libheaptrack test with valgrind's
helgrind for error detection. You'll still need to add surpressions
for the other std::atomic usages though, something like:
{
std_atomic_exchange Helgrind:Race fun:exchange fun:_ZNSt6atomicIbE8exchangeEbSt12memory_order
}
{
std_atomic_store Helgrind:Race fun:store fun:_ZNSt13__atomic_baseIbEaSEb
}
{
std_atomic_load Helgrind:Race fun:load fun:_ZNKSt6atomicIbE4loadESt12memory_order
}