Prior to this commit, if waitForTasksToCompleteOnShutdown was true then a shutdown
would be called on the underlying ExecutorService but the caller would not wait for
running tasks to complete.
ExecutorConfigurationSupport and its subclasses will now wait a configurable number
of milliseconds for tasks to complete before issuing a hard shutdown.