This header attempts to replicate some of the types from std::atomic to support features in the ETL when the compiler
does not support it.
If ETL_ATOMIC_SUPPORTED is defined as 1 then the STL <atomic> header will be used.
If not, then the appropriate ETL header will be included according to the compiler macro definition.
If none of these succeed then a compiler time error will result.
The ETL atomics only support integral and pointer types.