KASAN generates an interceptor for every atomic operation. The set of
atomic widths was hardcoded, assuming every architecture supports all of
them. That isn't true in general: some architectures lack atomics for
certain widths, so KASAN should not intercept operations that the
architecture does not provide.
Allow each architecture to declare which atomic widths it supports in
its machine/atomic.h. The defaults cover all widths, so this is a no-op
for amd64 and arm64. This is a prerequisite for KASAN on riscv.