PHP-880: Add a helper to check if a feature is supported by the current Wire Version
PHP-880: Expose php_mongo_serialize_size()
PHP-880: Add couple of new exceptions for the new Write API

MongoDuplicateKeyException extends MongoWriteConcernException
MongoProtocolException extends MongoExceptions

MongoDuplicateKeyException will be thrown on duplicate-key errors
from the new write api.

MongoProtocolException will be thrown on "new" protocol errors,
and when we start breaking BC, will be thrown instead of
MongoCursorException on request/response id mismatches and
related errors which incorrectly throw Cursor exceptions for BC

Conflicts:
	config.m4
	config.w32
	php_mongo.c
PHP-880: Initial implementation of the new (2.6.0) Write API

Currently only supports inserts.
Use php_mongo_api_connection_supports_feature() to see if the server
supports this new API before use!

Conflicts:
	config.m4
PHP-880: Implement Stream Notifications for the new Write API

The old notification API was based around OP_INSERTs, which doesn't
make sense for the new API, especially since the new writes don't
follow up with a getLastError commands.

This new notification API adds two new functions:
php_mongo_stream_notify_meta_cmd_insert() (userland: log_cmd_insert())

It passes in:
- server (connection) info
- Inserted document
- Write Options
- Protocol options (message length, request ID, and command namespace)

php_mongo_stream_notify_meta_write_reply() (userland: log_reply())

It passes in:
- server (connection) info
- opcode info (length, request_id, response_to, opcode)
- reply info (flags, cursor id, start, returned)
Add missing vim modelines
PHP-880: Use the new Write API when Wire Version overlaps
Test for DuplicateKey exception and random inserts in the new api
Rename buffer to mongo_buffer
CS nitpicking
Fix inserting documents over the old API
Fix zts
Fix config.m4 after bad bad rebase trying to be smart

New lines are not allowed here at all :(
Fix constant name