Fixed worker threads running after `scoped` call if one of them panics
Fixed worker threads running after `scoped` call if one of them panics

If a worker thread panicked, the recv().unwrap() in the `join_all` method would
also panic, in turn causing the pool not to wait for all its workers to
acknowledge that they are finished. This could lead to unsoundness, since the
unwinding could free memory that the still executing worker threads have
references to.

Fixed by first waiting for all threads to finish, recording whether they
panicked or not, and then panicking explicitly afterwards, if so.

tempbottle/scoped-threadpool-rs,njaard/scoped-stateful-threadpool-rs,Kimundi/scoped-threadpool-rs