Rewrote the connection monitor to be fully promisified. It will not
run a connection check if one is already in progress. Also, it
clears out the dead pool every time & re-adds to an empty list
if necessary.

Wrote a unit test for the good case.
Needs a unit test for the unhappy case; will mock that with sinon.
The point of the whole exercise: remove dead clients from the client list
and shut down their connections.

Next, cleanup.
Wrote a test to verify that we're trying to reconnect when a host is
dead on the initial connect. Cleaned up what the test revealed.

Added sinon to the dev dependencies.
Added a unit test for the case of a host going down & coming back up,
using sinon to mock the ping failure.
And added a check to make sure we're not adding copies back to the clients list.
restore the localhost test connection
Let's see if we can get Travis to run even one test for us.
Trying the workaround here:
https://github.com/travis-ci/travis-ci/issues/1484
Reset the check flag even on failure, so we try again.
(TODO: remove that case entirely by making the fail impossible.)
Merge pull request #3 from blackpearlsystems/pingmania

Rewrote connection monitoring, with unit tests