Fix null pointer when decoding invalid DBRef PYTHON-532
Fix import when _cbson unavailable PYTHON-532

This ensures that we don't import _cmessage in
an incomplete state or segfault if _cbson isn't
available. If _cbson.so has been removed we fall
back to pure python.
Changelog for 2.5.2.
Further DBRef cleanup.
Fix parameter hiding.
Clarify network_timeout and commands PYTHON-495
Fix up REType reload.
Clean up InvalidDocument/StringData handling.
Better error message when C extension raises InvalidStringData, PYTHON-533
Fix clang warnings.

This fixes all compiler warnings under clang.
The major change is safely downcasting from
Py_ssize_t to int (BSON string lengths and document
size are signed int32). This change also includes
some code cleanup in the functions touched to fix
compiler warnings.
Document the 'sparse' index option
Further C extension cleanup.
Fix a bug Coverity found.
Support the SASL PLAIN mechanism PYTHON-519

This is initially for LDAP authentication support in
MongoDB 2.6 (forthcoming). Warning: the username and
password are sent over the wire in clear text per
RFC 4616. SSL with cert validation should be used in
conjunction with the PLAIN mechanism to encrypt the
channel.
Support gssapiServiceName PYTHON-524

This also adds general support for authentication
mechanism specific options and validation.
Clean up faq content about django-mongodb-engine.
Clean up Database.authenticate docs PYTHON-534

This change removes the commentary about the admin
database since it no longer applies when using role
based authentication in MongoDB 2.4 and newer.
Consult the MongoDB manual for details.
Validate cache_for (and deprecated ttl) PYTHON-518
Fix llvm-gcc warnings.

This also corrects a previous change that
caused problems on python 2.4 and 32 bit systems.
Raise OperationFailure, not AutoReconnect, if auth fails during lazy connection. PYTHON-517