Do not block in SimpleThread::Start().

There is no good reason to block in SimpleThread::Start().
In addition to introducing unnecessary latency, blocking in
Start() prevents a non-joinable DelegateSimpleThread from
being deleted from Run() without external synchronization
(it is wrong to delete SimpleThread while Start() is waiting
on the |event_| member).

BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2664953004
Cr-Commit-Position: refs/heads/master@{#448622}
10 files changed