X86-64 kernel abi structures

This patch series adds almost all the necessary x86-64 bits to `kernel_abi.h`.  With the appropriate addition to define `RR_NATIVE_ARCH`, it passes `g++ -fsyntax-check` on 64-bit, which tests all the `static_assert`s and the like in the file.

I am ambivalent as to whether the `RR_NATIVE_ARCH` should be included.  I left it out, because way too many other things would break if you put it in and somebody tried to actually compile for x86-64.  But I can see the argument for adding it, too, since we're getting to the point where compiling for x86-64 (if not actually running rr) could be a thing.
It is odd; I think it actually works out OK, because the not-packed and the packed structure definitions for x86-32 would be the same size, with members at the same offsets.  `uint64_t` on x86-32 only has 4-byte alignment, IIRC, so the union doesn't require padding between the `events` member and the `data` member.

If it does happily work out in our favor, there should be a comment explaining such.  If it doesn't happily work out, it should be fixed.