node: WIP begin reimplementing AsyncListeners

There is a slight API change that should be made before the initial
release in v0.12.

Starting we're switching the docs and tests to the new API for testing
as development goes forward.