Fixed PHP-704: Incorrect failure checks for stream reads

get_cursor_body() returns 0 on failure. I reviewed all other instances
of similar calls and they all look fine.
On failure, we also need to free the error message after throwing the
exception
De-yodafied.
Merged pull request #318
Fix build using llvm
Merged pull request #320
Fix bad fix for PHP-704

mongod will return empty data (0) when there simply aren't any results,
so we cannot use 0 for a failure condition.
An empty response it totall valid, as it means the query criteria simply
didn't get any results
Merged pull request #322
Fixed PHP-554: MongoId should not get constructed when passing in an invalid ID.
Merged pull request #321
Fixed PHP-537: Update limits according to default (16MB) or server info (maxMessageSizeBytes).
Throw an exception when a batch insert goes over the limit.

This will be addressed later, with the implementation of PHP-705.
Updated patch with comments from Hannes' review.
Fixed test case after message format changes.
Merge PR#323 (PHP-537)

* pr/323:
  Fixed test case after message format changes.
  Updated patch with comments from Hannes' review.
  Throw an exception when a batch insert goes over the limit.
  Fixed PHP-537: Update limits according to default (16MB) or server info (maxMessageSizeBytes).
Fixed PHP-665: Add support for Auth Specification

Implemented support for surrogate users, defined in a seperate database
then currently using.

Also fixed a memory leak when switching between databases with
credentials.

Added support for the authSource connection string option, as well as
future compatability support for authMechanism.
Fixed CS and tweaked error messages a bit.
Merged pull request #319
Fix PHP-686: Constant reconnect attempts to a server that is down

This is because on every single 'new MongoClient' we would do a full
topology discovery and attempt to connect to every single server we
could find - even though we were previously fully aware of the fact the
server was down.
This may have seemed like a good idea, we would quickly discover when
a server became available again..

However, if the machine is completely off we have to wait until the
connect() times out. Again. And Again. And Again, on every 'new
MongoClient'.
In practice that means all requests coming into the application will
have to wait 1second (default) times down servers, which ofcourse is
unacceptable.
PHP-686: Fixed CS & info message per PR#317 review
Fixed PHP-686: Don't connect to server that is down

Made the blacklisting into a linked list that maintains the "last_ping"
so we know when we should attempt to reconnect to it.
The linked list is implemented by extending mongo_con_manager_item
and its helpers to be more generic