gtask: fix leak in example code
GDBusMessage: fast-path encoding of fixed arrays

Instead of handling each item separately, handle the array as a whole.

https://bugzilla.gnome.org/show_bug.cgi?id=732754
GDBusMessage: fast-path decoding of fixed arrays

Instead of creating a separate GVariant for each of the 'y's in an 'ay',
use g_variant_new_fixed_array().

https://bugzilla.gnome.org/show_bug.cgi?id=732754
Fix up failure-to-see-expected-message logging

When GLib had been told to expect message X, but then actually saw
message Y, it would log the "did not see expected message" error with
message Y's log level and domain, which makes no sense. Change it to
log with domain "GLib" and G_LOG_LEVEL_CRITICAL instead.

Also, include the expected domain in the error message, so that if
that's the reason why the expectation didn't match, you can tell that
from the error message.

Update glib/tests/testing.c for these changes; for all other test
programs in GLib and elsewhere, this change should not break any
existing tests, it should only improve the output on failure.

https://bugzilla.gnome.org/show_bug.cgi?id=727974
GLib: implement GMutex natively on Linux

If we have futex(2) then we can implement GMutex natively and gain a
substantial performance increase (vs. using pthreads).

This also avoids the need to allocate an extra structure in memory when
using GMutex or GCond: we can use the structure directly.

The main reason for the increase in performance is that our
implementation can be made more simple: we don't need to support the
array of options on pthread_mutex_t (which includes the possibility, for
example, of being recursive).

The result is a ~30% improvement in uncontended cases and a much larger
increase (3 to 4 times) in contended cases for a simple testcase.

https://bugzilla.gnome.org/show_bug.cgi?id=731986
GMutex (linux): detect and report some errors

Detect the following two errors:

 - attempting to unlock a mutex that is not locked

 - attempting to clear a mutex that was not initialised or was
   initialised but is still locked

Both of these are fatal errors.  We avoid using g_error() here because
doing so would involve calls back into the GMutex code, and if things
are going off the rails then we want to avoid that.

https://bugzilla.gnome.org/show_bug.cgi?id=731986
GCond (linux): fix g_cond_wait_until() return value on timeout

It should return FALSE on timeout (and only on timeout), and
TRUE otherwise.

https://bugzilla.gnome.org/show_bug.cgi?id=731986
GDBusMessage: add some G_UNLIKELY on error paths

More for documentation than anything else...
Fix typo
docs: Use "Returns:" instead "Return:"
Add HSBuild build files
Fix time_t issue on MSVC where time_t is 64 bit
Omit fatal MessageBox on Windows in Debug configuration
Add g_assertion_set_handler for setting a custom handler
Add a GModule workaround for iOS/dyld_shared_cache

System libraries are typically in the dyld_shared_cache, and thus
don't reside on the filesystem.
Add workaround for lack of G_GNUC_NORETURN
gsocket: Improve default UDP behavior on Windows

An ICMP port unreachable will result in a socket error, which is a
really bad default for UDP sockets.
GMain: Replace Windows implementation of g_get_current_time

Use QueryPerformanceCounter instead of GetSystemTimeAsFileTime. Only use
the latter for the starting point. Avoids burning precious CPU-cycles
with GTimeoutSource because of GetSystemTimeAsFileTime's low resolution,
which is 15 ms at best.
Fix declaration after statement
Avoid passing uninitialized sockaddr_storage to WSAAddressToString