Revise the trace log format: dump raw structs instead of ASCII-ifying.

What motivated this change was the need to extend the current
trace_frame to store extra data.  There were several rather delicate
touch points for that kind of change.  The code that reads and writes
the new format doesn't care what fields are in the structs (only
debugging logging cares, but logging new fields is opt-in).
Compactness wasn't the motivation for this, but the trace files should
be around 2x smaller or so.

The next commit will introduce an 'rr dump' command to log what used
to be directly readable in the trace_i/trace_j files, except with
creature comforts like reading aids and filtering.  This is required
for debugging.

I've been looking for an excuse to do this for a long time ... the trace.c code wasn't my favorite in the tree ;).