Make Registers arch settable and initialize it in Task constructor.
Add CMake rules to build 32-bit tests and librrpreload
Add librrpreload_32 to LD_PRELOAD
Fix Registers to convert between native user_regs_struct as necessary.
Move ELF class reading out to util.
Switch archs dynamically in Task::post_exec.
Fix sign-extension for 32-bit tracees.
Add better diagnostics for failed receive_fd.
Ensure size_t references in Arch definitions refer to Arch's size_t
Accept both possible librrpreload filenames in AddressSpace.
Make post-exec stack_ptr point to unsigned words so we don't sign-extend when reading pointers.
Fix definition of PTR macro to actually use the correct Arch-specific pointer type.
Make rep_maybe_replay_stdio_write_arch handle writev.
Dispatch syscall processing on the correct arch even if the Task's arch is out of date.
Move patch_after_exec call to a safer place
Patch LD_PRELOAD librrpreload file name to be the correct library name for the architecture of a post-exec task.

This avoids having to specify both the 32-bit and 64-bit library names in
LD_PRELOAD, which produces a warning message from ld.so since one
of them cannot be loaded.