Avoid creating a mostly idle thread just to run a timed task.
Added NamingThreadFactory to ensure that all code creating thread pool executors was marking the threads.
Otherwise we get a bunch of pool-17-thread-5 with no clue who created so many threads or why.
Also simplifies existing code which previously had to write one-off ThreadFactory implementations just to set a name.
Merge REMERGE_HEAD into HEAD