test: refactor connection surviving stepdown tests
test: refactor connection surviving stepdown tests

Reduce duplicate code, introduce a concept of a deferred action
to ensure we close cursors and remove failpoints even if an
unexpected error occurs.

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