cluster: try to reuse existing connections during replset reconnection
doc: update README.rst.
examples: remove useless index-source example.
uri: add mongoc_uri_get_mechanism().
sasl: start plumbing in sasl support.

This includes SASL PLAIN authentication. GSSAPI to come soon.
build: bump libbson requirement to 0.4.1.
sasl: add support for GSSAPI authentication.

Enables kerberos authentication. This still needs a bit of work for
thread safety as well as breaking the code up a bit (it's one giant
function for now, that works, but is less than ideal).
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.