Modify the algo used for thread names so that existing thread names
are maintained, and names of new threads we create don't depend on the default
naming behavior of Executors. The latter one didn't solve any known problem,
but makes the algo more reliable and less brittle. The former, though, addresses
the problem that when run with sbt (or any other tool that directly injects threads
into ScalaTest), the identity of the thread was harder to follow because we
replaced the original thread name with "ScalaTest-running-<suiteName>". Now
we retain it and rename the thread "<original name>-ScalaTest-running-<suiteName>".
(I think you could have tracked the identity with the thread Id.)
That way if something weird happens in a run and someone needs to search through
log files to try and understand how it could have happened, they can more easily track the
path of threads from suite to suite by using the thread names. (This was requested
by David Barri on scalatest-users.)