boss_worker.py: Improved printing of stack trace.
  o  Skip worker internals, start with <your input> entry.
  o  For <your input> lines, include the line text.

This better, but not enough.  There will be multiple code "paragraphs"
within the notebook, so they have to all be remembered and distinguished
(like ipython's [1], [2], etc.).  The worst part is that a code paragraph
that you entered and ran before, but now have replaced with other code,
may still be relevant because it defined a function that still exists.
So,
  o  Paragraphs need to be distinguished (ipython does this).
  o  Old paragraphs have different IDs than new paragraphs, even at the same
     position within the notebook (ipython does this).
  o  Either all old paragraphs within a session have to be kept around or
     we can enable garbage collection by hanging the paragraphs off
     something the traceback can access... functions?  modules?
     code objects?  ASTs?