Draft: Trace integration into firstapp
This MR tries to integrate the trace system into firstapp to test whether traces can correctly be used on different (sub)systems.
For this, we define a trace subsystem for firstapp, which currently only has the start and ipc_send events.
Firstapp receives a trace_buffer pointer through its main function, which it uses to create traces.
After the app has run, the kernel should then print the generated traces to see if they were generated correctly.
Currently, this doesn't work, because the core on which firstapp runs seems to stop after starting firstapp.
To make this work, I also had to refactor the logging and tracing code into their own libraries.