Depends on D86670.
I first just want to get feedback about the structures of the class in this patch, later I con polish it.
This adds the skeleton for decoding traces of threads. The first step is having the plug-in implementation decode its trace into raw instructions. Individual instructions can sometimes fail to be decoded, so the instruction class should have an is_error flag. Error are quite sporadic though.
I'm adding a TraceThread class that contains all the information needed to decode a trace. I'm creating another class TraceDecodedThread will is obtained by calling TraceThread::Decode and its existance indicates that decoding didn't fail and you can use that class for inspecting the decoding trace.
This means that TraceThread is like an initialization object, and then the analysis is done by the TraceDecodedTrace class, which splits responsibilities and makes error handling easier.
I added some comments in Trace.h as well.