Saner thread naming in DefaultExecutorService

The previous Strategy.DefaultExecutorService asked for a new thread
factory for each new thread created. The result was threads with names
like (on a 4-cpu machine)
pool-6-thread-1
pool-7-thread-1
pool-8-thread-1
pool-9-thread-1
This change saves one defaultThreadFactory and reuses it for thread
creation, so that the threads come out named
pool-6-thread-1
pool-6-thread-2
pool-6-thread-3
pool-6-thread-4
This makes debugging easier, because one can see which threads are
grouped into the same pool.
Merge pull request #631 from jessitron/executorServiceThreadNaming

Strategy.DefaultExecutorService creates threads as if they're each in a different pool