Lots of changes!, adding remove(Runnable/Callable) to the interfaces, and lots of unit test expansions
This creates a new interface SchedulerServiceInterface (which has removal functions, as well as the isShutdown() functions).  Most our services now implement this.

This helps clean up some things around the TaskSchedulerDistibutor (which are NOT services).  It also allows for a better seperation of concerns in the implementations.  I think this is cleaner for the SingleThreadedScheduler as well.