Initial impl of trace event.
Fix multiprocessing.
Monkeypatch multiprocessing module so that multiprocessing (almost) automatically traces. Flushing is still a manual thing.
More readme tweaks.
Allow enabling of trace on passed-in filenames and/or passed-in file objects.
Let flush succeed if not tracing.
Add process args as metadata.
Make flush work if enabled is off.
Add tests for the new enable code. Add tests for double flushing. Filter out metadata when asking for thread events.
Use microseconds instead of seconds on ts.
Remove versioner hack because py_trace_event doesn't need wx
Add @tracedmethod decorator to trace classmethods.
Open logs for append rather than write. Makes multiple process traces actually work.
If an event has no tid or pid, dont add it to the tid or pid list
Fixup traces that begin with a [ but dont end with the same.

This will simplify the tracing logic for multiple processes.
Add explicit trace_begin and trace_end functions.
Change to new trace format and make multiprocess tracing work.

Switch from the old {traceEvents: to the new [ format. trace_event_viewer
knows how to fixup traces that dont have a close } on them, allowing us to
remove complexity around adding trailing ]} to tracefiles.

When creating a trace file, output process metadata as the first action.
This allows us to make every flush command preceed itself with a ",", since
there is guaranteed to be a previous event. This allows more complexity to be
avoided.

Add _note function to help with debugging in the future.
Add unit test for multiple process (non-multiprocessing) tracing
Rename trace_events -> parsed_trace_events.
Dont use decorators in basic log tests.