Python stack traces use spaces and carets to "underline" the
code causing the problem. I've now matched and processed
these lines to add <u> tags.
This necessitated escaping messages and displaying raw HTML
which is now done by `escapeText`.
I fixed a logic error related to the reversing of the list, and
now display multi-line log messages as a single summary line with a "more info" link to expand them.
Expanded log messages show without text wrap - this makes
Python exception traces easier to read.
For extra points, we could even do something cunning, like
process the ^^^ markers into <u>