refactored authentication and added plain and scram sasl authenticators.
added test helpers and MongoDBX509AuthenticatorTests.
added more thorough authentication tests.
refactored and added PlainAuthenticator and ScramSha1Authenticator tests.
cleanup after rebase. Also added more ScramSha1Authenticator tests.
Merge related changes.