Define __wchar_t also when doing C++.
Correct volatility in atomics for gcc.
Move stdatomic.h to kernel headers.

This allows us to access all c11 atomics from kernel space.
Compiler can now generate atomics for us, people who know how c11 works,
can re-use that knowledge in the kernel.
Pull in ll (lock-free doubly-linked list).

Upstream repository at git://github.com/nahratzah/ll.git by ariane.
subr_ll: KASSERT -> KDASSERT because it saves 50% on the code size.
Include kernel headers before algorithm headers.
Change mutexes to MI code.

Uses compiler builtins (via stdatomic.h) to target different architectures.
While moving the mutexes, make it a ticket lock, so mutexes will be fair when
contested.