Templatized syscall structures

I don't think this addresses everything (it occurred to me that places doing things with `syscall_defs.h` probably need to be revised, etc.), but I'd like to get this into the tree.

This patch is essentially the same patch as was last posted in #1195, but rebased to pick up the `struct mmsghdr` changes that went in recently.
Same here.

We aren't going to compile a 32-bit rr that works with 64-bit tracees, so whenever rr can just use the wider type, I think we should because it's a bit simpler. Same reason we've been using uinptr_t/intptr_t for register values.