rename vsyscall structures to make their x86-ness clear
implement perform_monkeypatch for x86-64
Use more remote_ptr in Task.h.
Switch remote read/write methods to take void* instead of uint8_t*
Make read_bytes use remote_ptr.
Make AutoRemoteSyscalls::initial_ip use remote_ptr.
Use remote_ptr for Task::ip() and related fields.
Lots more remote_ptr usage
Make watchpoint_addr use remote_ptr.
Make sp() use remote_ptr.
Make Task::read_mem take remote_ptr.

This triggered an avalanche of related changes, turning this into a mega-patch :-(.
Remove T* conversion operators on Arch::ptr.
Remove conversions between remote_ptr and T*.
Use a helper function for some scratch allocations.
Fix rt_sigtimedwait to be architecture-neutral.
Use bool in a few places.
Remove read_mem helper function.
Create Completion enum to use for function results in replayer.cc.
Slight tweak to remove unnecessary local variables.
Switch some functions to return bool, and change would_need_scratch to need_scratch_setup and make it bool.