Make ThreadPoolBuilder reusable.

Part of splitting PR 99.

This means that the work queue cannot be shared.
Also, push the gauge into the executor as a member.