Description
If a TraceRunnable or TraceCallable is passed a null scope name, then it will set the description to the current thread's name, which happens to be the parent thread. It would be much more useful to set the description to the child thread's name.
A nice side effect of this change is that we can add a version of tracer.newTraceExecutor that doesn't need to take a description for use by applications that take great care to name their threads in an informative manner.