Redo API to use a TraceScope context

This allows a span to be passed around between threads more easily