Make worker threads more resilient.

If an unhandled exception happens during the work method, shut
down the worker and start again.

Also, name worker threads for easier debugging.

Change-Id: Icc8e4c060bca4ab624bffc2e1bef18655d50d6b2