Rogue threads are completely obliterated now

Added better logic for thread sleeping, better rogue thread stopping, and finally, the shutdown thread stops the scheduler and any remaining tasks. Planning to add a graceful shutdown for scheduling later. (where it stops any new tasks from being created, then waits for any current tasks to be completed for a second or two, and then forcefully shuts down now)
Fixes #179 
Explicit `toString()` is not required.