Fix potential deadlock in ThreadedService, and allow subclasses to specify their own method of thread interruption (or note at all) if Thread.Interrupt() is insufficient or undesired
Rename InterruptThread to StopRequested
Allow threaded services to indicate whether they are a background service
Add some utility methods to ServiceManager