refactor(mongos): introduce `DESTROYING` state to prevent leaks
refactor(mongos): introduce `DESTROYING` state to prevent leaks

We were scheduling timers even when the topology was in the process
of destroying. Introducing a `DESTROYING` state allows us to skip
certain behavior in this liminal state.

mongodb/node-mongodb-native,mongodb/node-mongodb-native,mongodb/node-mongodb-native,mongodb/node-mongodb-native