Avoid tracebacks when visualizing measurements.
Attempting to visualize analysis files containing only unsuccessful measurements results in various tracebacks.
With this patch we check more carefully whether a data frame is empty before adding a plot.
Another related change is that we always include "time_to_{first,last}_byte" and "mbps" columns in the CSV output, regardless of whether there are there are any non-null values in the data. See also #40004 (closed) for a previous related change.
And we check whether a Tor stream identifier exists before retrieving a Tor stream.
Finally, we only include TTFB/TTLB if the usecs value is non-zero.
Fixes #44012.