Use GCC's `__int128` type when available

It might not seem like much, but GCC can produce slightly more efficient
versions of the arithmetic functions for our 128-bit integers if we use
the builtin `__int128` type.  But that's only available in recent
versions of GCC, and more importantly, only on 64-bit platforms.  So we
still need our previous implementation as a fallback for platforms
without the builtin type.