After dropping support for Node.js 4 (NODEJS-516), given that Node.js 6 supports 95%+ of the features in the spec, we can modernize the driver codebase by:
Using Object destructuring for require.
Use rest parameters.
Use spread syntax.
Migrate to class syntax to the few constructor and prototype declarations left, like Connection and ControlConnection, Protocol and Parser.