CDRIVER-423 ISO-8601 string or $numberLong dates

Provide support for ISO-8601 strings and $numberLong dates.
You aren't going to like this ... but leap seconds are different per timezone, since the local government can choose when to add them. I can't recall what I did in GDateTime to deal with this. I think we just decided to store each field independently.

No matter what, we will lose precision when writing to the server since a single int64_t is not capabile of tracking leap seconds. (You need to use either julian period + timekeeping or m/d/y/h/m/s indpendently).

My suggestion would be to let libc do the conversion to time_t for you since they already have access to the timezone database. Convert to a `struct tm` and then convert that to `time_t` with `mktime()`.