This starts the perf streams from prepare instead of from record so that
we can do the linux instrument work in prepare. The samples are dropped
until our start-time is set.
Doing it this way removes sysprof-cli and sysprofd greatly from the
overhead in the callgraph which is useful so that the user gets to see
what they really care about.
It has the added benefit that we're less likely to see the pkla processes
showing up from authorizing our D-Bus connection for creating per streams.
We may not always get this value (in fact, I can't seem to actually get
the Kernel to provide it to me locally), but should we actually get it
this will send that along to the capture writer so it may add a @build-id\0
tail to the SysprofCaptureMap frame.
We still need to add an additional capture writer so that we can keep the
build-id around, but this gets the mechanics in place to handle the
PERF_EVENT_MMAP2 event type.
This brings together the two libraries back into one now that the whole
design is pretty well sorted out. They depend on roughly the same libraries
anyway and it's way easier of the single library can both read and write
the capture files (along with bringing in libsysprof-capture symbols in
a single place).