Remove start_hpc and just use reset_hpc instead.
Support instruction tracing over a range of events.
Move cpuid function to util.h/.cc and generalize it
Create ExtraRegisters and save/restore ExtraRegisters on exit from sigreturn syscall.

sigreturn and rt_sigreturn restore register state when a signal handler exits.
This state includes floating-point and SSE registers that rr normally doesn't
need to touch. rr needs to replay these state resets and currently doesn't,
causing divergence. This patch fixes the problem by recording the extra register
state on sigreturn/rt_sigreturn exit, and setting that state in the tracee
during replay.

Note that with this approach, rr doesn't actually need to know *which*
registers are saved/restored via sigreturn/rt_sigreturn. We just do a
wholesale reset of registers in the replay to the values they had in the
recording.