Support async promise resolution

Promises/A+ and when.js 2.0 resolve promises asynchronously in the next
tick. This behavior breaks some of the assumptions made in the test
suite, but does not affect the main code.

NOTE: the probe/util/async module should not use used within tests to
defer execution. Timing issues can be encountered as it will only defer
one tick, where the main line resolution may be deferred multiple ticks.
setTimeout with a non-zero value is recommended instead.
buster-server support

Improved startup performance for buster-static
Rename main modules from probe.js to probes.js

The package is named probes, the main module should use the same name.

This change should be transparent to users.