implement the DiscoveryPool variation on Pool

This variation takes a seed node & an options object. It re-discovers its node list periodically from the seed, adding & dropping clients as the node list changes.

Reworked all failing tests to use straighforward must() assertions instead of chai-as-promised, which seems to have changed out from under the tests. Locked down module versions so that doesn't happen again.

@kitcambridge please review at your convenience.