Check validity of CompressedReader's fd properly.
Skip section header name table when searching for .dynstr table in vdso.

Apparently my latest Fedora 20 update added a section header name
table to the vdso and this broke rr.

We should probably actually check the section names, but maybe
that would break older vdsos.
Read and reset tick counter at each process stop instead of doing it lazily.
Task::wait and Task::resume_execution always succeed now.
Factor out post-waitpid logic into did_waitpid.

This ensures we read the ticks counter after a waitpid from recorder_sched
and other non-Task::wait() callers, which doesn't seem to matter right
now but is the right thing to do anyway.
get_ptrace_eventmsg_pid should return a pid_t.
Eagerly read general-purpose registers when a task stops.

This lets us easily make Task::regs() const.

Apart from the code being a bit simpler, this will also let us handle SIGKILL
more robustly in the future --- ESRCH when getting the registers can be
treated as task death in did_waitpid instead of having to treat regs()
as fallible all over the code.
Clean up some #defines in task.cc.
If the process is dead when we attempt to read its registers in did_waitpid, treat that as an exit event.
Fix typo
Remove is_page_aligned (unused).
ensure AutoRemoteSyscalls knows how to perform x86-64 syscalls
only complain about x86-64 images with an i386 host
use target types, not host ones, for remote_ptr in process_execve
compensate for x86-64's slightly different auxv entry ordering
add an arch() method to BaseArch
conditionally use mmap2 when setting up scratch memory
define architecture-specific variants of REGCMP
define x86-64 user_regs_struct more conveniently for GDB
handle differing semantics for the mmap system call