Add monitorAsync API and refactor SimplePool

Not only can the SimplePool test/example use monitors instead of a
process identifier, it can be simplified as 'bump' will never run
with 'slots > 1'