libroot: enable c++11 in os/arch/x86_64
libroot/x86_64: minor improvements in TLS code

 * less inline asm
 * std::atomic<> instead of obsolete atomic_*()
libroot/x86_64: relax asm constraints in find_thread()
kernel/x86_64: enable c++11 in x86_64 specific code
kernel/x86_64: x86_64 gdt handling code overhaul

Virtually no functional change, just rewriting the code from
"C in *.cpp files" to C++. Use of constexpr may be advantageous but
that code is not performance critical anyway.
kernel/x86: add space between literal and identifier

Due to introduction of user-defined suffixes C++11 requires that there
is a space between literal and identifier to avoid ambiguity.
kernel/x86_64: rework of IDT handling code

Similarly to previous patch regarding GDT this is mostly a rewrite of
IDT handling code from C to C++. Thanks to constexpr IDT is now entirely
generated at compile-time.