add _Credential class with support for CR, PLAIN and X509
re-enable auth with new _Credential class
Add GSSAPI authentication support
add note about testing PLAIN
make password optional for URI parsing
add support for SERVICE_NAME; drop unimplmented CANONICALIZE_HOST_NAME
CAP-469 test SASL PLAIN
add GSSAPI tests
amend XXX comments
update copyrights for some test files
improve documentation of deprecated 'authenticate' method
refactor password digesting and ensure UTF-8 encoding is used
use autoAuthorize for saslStart
CAP-478 test X509
document authentication mechanisms
Implement new authentication framework

This branch reimplements authentication in a common framework and
consistent with the nomenclature and semantics of the new authentication
specification.  It is now integrated into the server handshake that
occurs during server selection.

The legacy 'authenticate' method has been deprecated and amended to
close all connections (thus de-authenticating them) and then
re-authenticate with a username and password.

MONGODB-CR and PLAIN were previously supported and their code has
migrated into the new _Credential class.  MONGODB-X509 support is newly
added.

GSSAPI is implemented using Perl modules (based on libsasl or libkrb5)
instead of libgsasl in C.

SCRAM-SHA-1 has a placeholder and will be implemented later.

Authentication documentation has been substantially expanded.