Peter Zijlstras rework of atomics and fallbacks. This solves two problems:

  1) Compilers uninline small atomic_* static inline functions which can
     expose them to instrumentation.

  2) The instrumentation of atomic primitives was done at the architecture
     level while composites or fallbacks were provided at the generic level.
     As a result there are no uninstrumented variants of the fallbacks.

Both issues were in the way of fully isolating fragile entry code pathes
and especially the text poke int3 handler which is prone to an endless
recursion problem when anything in that code path is about to be
instrumented. This was always a problem, but got elevated due to the new
batch mode updates of tracing.

The solution is to mark the functions __always_inline and to flip the
fallback and instrumentation so the non-instrumented variants are at the
architecture level and the instrumentation is done in generic code.

The latter introduces another fallback variant which will go away once all
architectures have been moved over to arch_atomic_*.