PHP-708: Implement WriteConcernException for GLE errors

This also adds error checking for the GLE command itself, using the same function that findAndModify() uses to inspect the command response.

If the GLE response is successful, the write operation is considered to have failed if the "err" field is a non-empty string. Previously, we sourced the message and code from the "errmsg" and "n" fields, respectively, which was incorrect.
Change mongo_cursor_throw() to require exception class entry

Rather than infer the class entry (previously Cursor or CursorTimeout) from the error code, explicitly provide it. This makes it much easier to throw WriteConcernExceptions consistently (ensuring the host prefix and property are set) without having to anticipate error codes in GLE responses.
Add missing proto to CursorException::getHost()
Add host field and getter to ResultException class

MONGO_CMD() does not reveal the connection used for the command, but we will be able to set the host if a ResultException is thrown due to GLE command failure.
Add arginfos for exception methods without parameters
Remove unnecessary exception header include
MongoCursor::next() should throw for "$err", but not "err"

php_mongo_trigger_error_on_gle() will already inspect the GLE response and throw a WriteConcernException. Additionally, this old behavior in MongoCursor::next() made it impossible to return documents with a legitimate "err" field.
Test invalid GLE command in MongoResultException