mongo_runner: Don't send rs.initiate too early

Fixes #1696. Thanks to @Maxpain177 for reporting and providing access to
a machine where this was easily reproducible.

(Manually ported to tool-refactoring from devel.)
Don't leave invalid METEOR-PORT files around

Could cause mongo startup to hang.

Reproduction:

  $ meteor
  => Meteor server running on: http://localhost:3000/
  # ... wait for server to start, ctrl-c.
  # leaves '3002' in .meteor/local/db/METEOR-PORT
  $ meteor -p 5000
  # ctrl-c in about a second: once we've wiped the old local db
  # but before we've configured the new one.
  # before this commit, '3002' is still in the METEOR-PORT file.
  $ meteor
  # before this commit, hangs with:
  Initializing mongo database... this may take a moment.

(Manually ported to tool-refactoring from devel.)
Don't call onListen more than once

eg, maybe the replset loses and regains its PRIMARY.

(Manually ported to tool-refactoring from devel.)