Update the `atomic_fetch_<OPERATION>_u<WIDTH>()` functions to return the old
value the target contained prior to applying the operation. This makes this
API much more versatile and closer to C11 atomics.
The volatile utils might be useful elsewhere - at least in a second unit test.
Move them to sys to allow using them, but with appropriate warnings added.