CDRIVER-437 Add authMechanismProperties to URI

This pull request attempts to bring us up-to-spec with respect to parsing auth-related things out of URI strings.  It changes a few things:

-adds the set of tests outlined in the spec
-moves auth-related options (```authSource```, ```authMechanism```, and the new ```authMechanismProperties```) to the URI's "credentials" instead of storing them in its "options."  Username and Password were and are still stored separately.
-credentials can be accessed via ```mongoc_uri_get_credentials(...)``` (this won't include username and password)
-```authMechanismProperties``` can be accessed separately via ```mongoc_uri_get_mechanism_properties(...)```
-```scan_to_unichar(...)``` now takes a string of "terminator" characters, and if it cannot find the provided "match" character before reaching a terminator, it treats that as a failure.
This is not UTF-8 safe. You need to use `iter = bson_utf8_next_char(iter)`. Granted it's unlikely that your terminator characters will use a multi-byte UTF-8, it's a good habbit to be in unless otherwise specifically documented.

However I would probably suggest just using something like:

```c
} else if (strchr (terminators, c)) {
```

Since `strchr()` can have compiler intrinsics to optimize for the target platform.