Add support for 128-bit compare and swap on x86_64 when available.

A 128-bit compare-and-swap will enable a better atomic lifo implementation
that uses the pointer + counter method to avoid ABA issues. This commit
adds configury to check for the instruction (cmpxchg16b) and adds an
implementation that uses the __int128 type available in C99.
uint128_t usually exists if int128_t exists. C&P error on my part. Either

typedef unsigned int128_t opal_uint128_t;

or

typedef uint128_t opal_uint128_t;

should work.