This change introduces per-thread kernel stack canaries using
clang's -mstack-protector-guard=tls flag. Under this scheme, we
instruct the compiler to fetch the canary value through the gs
register, allowing us to store the canary value in struct pcpu.
N.B.: This revision depends on LLVM PR 213107 since clang will not generate the proper gs-aware instrumentation on FreeBSD.