Wraps an existing executor to provide a .shutdown method that allows subsequent cancellation of submitted runnables.
After this method is called, no runnables that have been submitted or are subsequently submitted will start to execute, turning this executor into a no-op.