do not store the scene in TraceUnit

This removes explicit lifetimes in almost all places, and it simplifies
a lot of the code. The design is much better this way. It took a while
before I found how to do it, but in the end, the lifetimes and ownership
force you to do the right thing.
add App that will execute tasks