Add workpool

* pool of goroutines
* block when full
* support Around work

[#80332066]

Signed-off-by: Matthew Sykes <matthew.sykes@gmail.com>