Added the ability to supply your own thread factory when constructing the SingleThreadScheduler