In addition to the librados-style callback function, add a variant of
`RADOS::watch` and a `next_notification` function that retrieves the
next notification.
Rationale:
The callback creates an inversion of control that was more noticeable
with coroutine heavy workflows. You could co_spawn and detach, but
even then there isn't an obvious way to report errors.