TaskExecutors.inOrderExecutor does not wrap executors needlessly.
makeSafeListener.makeSafeListener does not needlessly wrap listeners.
Added the ContextAwareTaskExecutorService and the MonitorableTaskExecutorService interfaces.
Simplified the implementation of ThreadPoolTaskExecutor.
Removed naming the thread from SingleThreadedExecutor because it is the job of the ThreadFactory.
ThreadPoolTaskExecutor now allows user defined ThreadFactory implementations for creating worker threads.
SingleThreadedExecutor checks for null returned by a ThreadFactory.