Better error handling by converting ansi text from IPython interpreter to colored text.
Uses an MIT-licensed file from https://raw.githubusercontent.com/Kronuz/ansi2html/master/ansi2html.py
Renamed this file because it has the same name as a GPL-V3 package on PyPi.

This has some changes to address unicode characters returned by IPython too.
Better error handling from the Python side
Better error reporting for Python cells