boss_worker.py: comments
boss_worker.py: input names.  old traces don't print.
    Now each of the user's input paragraphs or tasks gets a new "filename,"
    like "<input 1>" etc.  The traceback will print the line contents for
    lines in the latest input, but only "filename" and line number for
    lines in previous inputs, viz:

	----- <input 3> -----
	def foo():
	    print 1/0

	-----
	=====
	----- <input 4> -----
	foo()

	-----

	Traceback (most recent call last):
	  File "<input 4>", line 1, in <module>
	    foo()
	  File "<input 3>", line 2, in foo
	ZeroDivisionError: integer division or modulo by zero

    I checkpointed here because now I have to decide whether the worker
    or boss should store the old input texts.  If the boss is pyinthephone,
    it will already be storing *some* paragraphs, but not necessarily the
    old versions of changed ones.  The boss also has the job of saving and
    loading whole notebooks from disk.

    The best argument for having the worker save them is that the worker's
    GC has the best chance of garbage collecting unneeded ones.

    Another argument is that if the boss stores them, the worker has to
    tell the boss what lines to insert into tracebacks.

    I guess I know which way I'm leaning.
boss_worker.py: cache all task texts (not GC'd)
    worker_main()
        Creates code_cache and adds each new task's text to it,
        indexed by task_filename (supplied by the boss).

    interpret()
        Mainly just passes code_cache to worker_print_exc()
        in the case of an exception.

    worker_print_exc()
        code_cache argument added,
        code_string argument removed, since its contents are
        in code_cache[code_filename].

    This method of storage doesn't allow the text to be garbage-collected
    during a worker's lifetime.