This fixes a compile error on gnu compilers where __tls_guard could be defined twice.
This change fixes an issue on GNU compilers where the intrinsic __tls_guard could be defined twice depending on how headers were included. Additionally this removes some unnecessary namespace qualifiers and adds a missing header file in precompiled headers list.
__tls_guard fix by @o3e.