cros_async: Add a deadline to BlockingPool::shutdown
cros_async: Add a deadline to BlockingPool::shutdown

Add an optional deadline to BlockingPool::shutdown.  Any worker threads
that have not yet exited once the deadline expires will be detached.
This ensures that we don't end up blocking indefinitely while waiting
for worker threads to exit.

BUG=none
TEST=unit tests

Change-Id: I6d7e73e1c95a934a4fd80825a9d44187532408b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3058842
Auto-Submit: Chirantan Ekbote <35787c0e27de5c48735e07f8324823b765e8bcbc@chromium.org>
Tested-by: kokoro <2ac7b1f3fa578934c95181d4272be0d3bca00121@google.com>
Commit-Queue: Chirantan Ekbote <35787c0e27de5c48735e07f8324823b765e8bcbc@chromium.org>
Reviewed-by: Noah Gold <2d4550d8af93bfc6e6fbe1fb1b0cc97a9ee7c3ce@google.com>
Reviewed-by: Daniel Verkamp <72bc170b46ec491f7bdd4359a1c0bfed274de40c@chromium.org>
Reviewed-by: Keiichi Watanabe <815e4e8f7c92a23424d7c3f51ead622bcedbc720@chromium.org>

google/crosvm,google/crosvm,google/crosvm,google/crosvm