Rename SYS_rrcall_monkeypatch_vdso to SYS_rrcall_init_preload
Inline rrcall_monkeypatch_vdso since the name isn't exactly what we want anymore.
Pack rrcall_init_preload parameters into a struct for easier access.

We're going to add more parameters later.
Move monkeypatching functionality to Monkeypatcher class.
Shorten function names
Factor out code to build syscall_info struct
Add struct syscall_patch_hook to preload interface.
Eliminate _vsyscall_hook_trampoline.

This mucking around with EAX is unnecessary.
Rename vsyscall_hook to syscall_hook.
Clarify comment
Add preload hook for syscall followed by 'cmpl $0xfffff001,%eax'
Save syscall hook list at preload init
Clone Monkeypatcher when cloning its AddressSpace
Move process-global syscallbuf state from Task to AddressSpace.
Add support to Monkeypatcher to dynamically patch syscalls
Patch dynamic syscalls during recording and replay.

Introduces an EV_PATCH_SYSCALL event to record the patching of a syscall.
This makes it easy to replay up to the patch point and verify that the
syscall was correctly patch.
Add dynamic syscall patching for x86-64.
Modify VDSO vsyscall patch code to make room for a dynamic-syscall patch, and add a dynamic-syscall patch that matches them.

This means that we may patch each VSDO vsyscall twice on x86-64. First,
immediately after exec we patch all VDSO vsyscalls to do an immediate
kernel syscall instead of the fast VDSO stuff. This avoids replay errors
when these syscalls are executed before librrpreload has initialized (or when
syscall buffering is disabled). After syscall buffering has been initialized,
the next time a VDSO vsyscall is hit, we'll patch over our kernel syscall
patch to call into the syscall buffering hook instead.
Add comment
Add comments to preload.c explaining the purpose of each syscall patch