gdatetime: Extend the '%z' timezone format

Implement gnulib strftime extensions for the '%z' numeric timezone
format. These are also supported and documented by GNU date(1):

%z     +hhmm numeric time zone (e.g., -0400)

%:z    +hh:mm numeric time zone (e.g., -04:00)

%::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

%:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)

https://bugzilla.gnome.org/show_bug.cgi?id=707151
Add tests for new '%z' g_date_time_format extensions

https://bugzilla.gnome.org/show_bug.cgi?id=707151
gsocket: Fix g_socket_get_available_bytes() on Windows and OS X

On Windows and OS X, FIONREAD on a UDP socket gets the total number of
bytes available, not the number of bytes available in the next packet,
which is the more useful number (and how the function always behaved
on Linux).

On OS X, fix this by using SO_NREAD. On Windows, fix this by doing a
MSG_PEEK recv() into a giant buffer, since there is apparently no
other way to get the information.

https://bugzilla.gnome.org/show_bug.cgi?id=686786
gio/tests/socket: add test for g_socket_get_available_bytes()

https://bugzilla.gnome.org/show_bug.cgi?id=686786
gio/tests/socket: fix warning building on win32

setsockopt() has a broken prototype on win32. Fix this by just using
g_socket_set_option() instead.