Remove global_time and ev fields from raw_data.

We don't need ev in the trace at all, and the time can be obtained from the trace itself.
Rename TraceIfstream to TraceReader and TraceOfstream to TraceWriter.
Add TraceWriter::write_raw() and call it instead of building a raw_data.

Saves a data copy in some circumstances.
Make raw_data::addr a remote_ptr.
Move raw_data to TraceReader::RawData.
Fix #includes
Make TraceMappedRegion::filename a std::string.
Create TraceReader::read_mapped_region instead of using operator>>.

This avoids the need to expose a public "empty object" constructor for TraceMappedRegion,
effectively making TraceMappedRegion immutable.
Replace TraceFrame operator>> with TraceReader::read_trace_frame().
Replace TraceMappedRegion and TraceFrame operator<<s with write_mapped_region and write_trace_frame methods.

For symmetry with TraceReader.
Rename write_trace_frame and read_trace_frame to write_frame/read_frame.
Fix comment.
Rename ofstream()/ifstream() getters to trace_reader() and trace_writer().
Rename trace_ofstream/trace_ifstream members to trace_out/trace_in.
Rename trace.cc/.h to TraceStream.cc/.h