cluster: never send a message larger than isMaster.maxMessageSize.
database: add mongoc_database_has_collection().

This function can be used to check to see if the MongoDB server knows
about a particular collection name.

Be careful using this, however, as it could be racey. Another client
could race to insert the first document into a collection, etc.

This is performed by sending a query to "system.namespaces".

If FALSE is returned, you should also check to see if error.domain is set
to disambiguate between a failure and no-existance.
collection: add test to query using regex.
cluster: enforce supported wire versions when connecting to MongoDB.

With the new write commands starting in 2.5.x, we need to negotiate
the wire protocol version of the driver<->server. During isMaster,
this will check the versions and fail the connection if we cannot
speak an overlapping wire version.

Fixes CDRIVER-245.
cluster: stub out check for wire version.
tls support

o mongoc_stream_tls integration - takes a mongoc_stream and does ssl
  over it
o mongoc-ssl - handles a bunch of interesting ssl features
  o CRL
  o common name verification
  o password protected pem's
  o rfc 6125 hostname verification