Add a drop-in replacement for std::abs which never produces negative values and thereby never invokes undefined behavior.
- templated structs were not required, SFINAE works for functions too => use instead, removes some unneeded code - fix non-usage of builtins with clang - adjust unit tests