add synthetic memtrace generation framework for testing purposes
Writing tests for memtrace corner cases like #3192 (closed) is not trivial and would be much easier if we could create a synthetic trace: both a synthetic raw offline trace and a synthetic final analysis-tool-facing trace. This issue covers adding features for generating both types of traces for use in testing.