add helper functions for multi-architecture syscall numbers
use X86Arch everywhere in is_always_emulated_syscall
add an easy way of getting arch from AutoRemoteSyscalls
use new arch-specific syscall helpers for guaranteed-to-exist syscalls
make RR_ARCH_FUNCTION more robust in the non-presence of |using namespace rr;|
use templates for process_syscall in diverter.cc
use mmap or mmap2 as appropriate for the architecture

Older systems like x86 had an mmap syscall that took a byte offset for
the sixth argument.  However, doing so meant that large files (> 4GB)
couldn't be mmap'd.  To address this, a replacement mmap2 syscall was
created that took its offset in units of pages, rather than bytes.

x86-64, however, has no problem with using byte offsets, and therefore
has no mmap2 syscall.  So we need to use the appropriate syscall for the
architecture of the process we're tracing when making remote syscalls.
use templates for Task::maybe_update_vm