This further improves the fix for #43.  Previously if the worker had an interrupted task, we would then kill the worker and wait to create a new task.  With this implementation, we will only kill the worker if the thread pool is shutting down.  Otherwise we clear the interrupt, and continue normally.  I also added unit tests around this behavior.
Fix for checkstyle warning
Further improved the thread thread pools usage of interrupts.  If someone sends an interrupt to an idle worker thread, we will allow that thread to die (regardless if they have called shutdown or not).  We know that the interrupted status was cleared after a task ran, so this means that a direct interrupt was sent while the worker was idle (so it seems to make sense to honor that request).
Easier to check running here, instead of Thread.isAlive()