uri: rename mechanism parameter to authMechanism.

This matches what the other drivers are doing for authentication
mechanism in SASL.
sasl: check for {done: 1} when authenticating against GSSAPI.

This gets SASL working for me on my test setup. We still need to abstract
this into it's own module and remove the goto's for control flow.

We probably need a maximum number of steps during sasl_client_step()
too.

Additionally, we need some work to verify thread safety.
examples: allow specifying the connection string and collection name

./example-client [CONNECTION_STRING [COLLECTION_NAME]]
sasl: extract sasl into it's own module.

This simplifies things a bit by moving SASL support into it's own file.
It might be nice to make the module work for more than GSSAPI at some
point.
sasl: plug leak of reply bson.
abi: update libmongoc.symbols for mechanism rename.
cluster: increment auth success/failure for all auth types.
examples: fix off-by-one.
cluster: clean up some warnings.
gridfs: only set prefix_len if we have debug enabled.
sasl: include sasl/saslutil for encode/decode functions.
ssl: allow lazy initialization of SSL methods.
sasl: fix some warnings when debug is enabled.
init: make init reentrant safe.
ssl: add helper to extract RFC2253 format subject.
x509: add x509 authentication support.
Fix pedantic warnings about misplaced semicolons.
Remove unnecessary error checks.
Merge pull request #7 from suraia/pedantic

Fix pedantic warnings about misplaced semicolons
Merge pull request #8 from suraia/error-check

Remove unnecessary error checks