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.