Transient errors inside transaction unpins the session.
Add brief docs about sharded transactions and add 3.9 changelog.
Tests changes:
Add spec tests for sharded transaction recoveryToken.
Speed up txn tests by reducing SDAM waiting time after a network error.
Remove outdated test workaround for killAllSessions.
Database.command without a read_preference defaults to the
transaction's or Primary if the session is not in a transaction
Add runCommand transaction tests.
Update count tests.
This change allows applications to check if their transaction was commited or
not by repeatedly calling commit until the transaction state is known.
If a session is used after a commit for any operation (not including
another commit), the operation is not part of a transaction and the session's
transaction state is reset.