This PR tidies up the code around performance parsing and what we
respond with from our tools. It introduces the ability to have no
Insights from a trace (relatively rare, but can happen), and also adds
more information to the output in the event that something went wrong.
Previously we just logged errors, but if we respond with them here that
will also help users report issues and increase the chances that we can
debug them.