(MCO-243) Add max duration for soft_shutdown

This commit adds the soft_shutdown_timeout config variable that is used
to time out the soft shutdown action that is performed by the runner
thread.

This enabled soft_shutdown on Windows when the timeout is set. It will
still revert back to normal shutdown behaviour if the timeout is not
set.