tlscertificate: add support for certificate chains

This patch changes the behavior of the following functions:

   g_tls_certificate_new_from_pem
   g_tls_certificate_new_from_file
   g_tls_certificate_new_from_files

If more than one certificate is found it will try to load the chain.

It is assumed that the chain will be in the right order (top-level
certificate will be the last one in the file). If the chain cannot be
verified, the first certificate in the file will be returned as before.

https://bugzilla.gnome.org/show_bug.cgi?id=729739
Add advice on g_cancellable_reset

Don't use it at home.
Add some missing filename annotations
Annotate the byte arrays in g_data_input_stream_read_*()

As the documentation says, the returned buffers may contain
embedded NUL bytes, so it's better to annotate them as
byte arrays with length provided by the output parameter
than risk misinterpretation up in the bindings.

Same treatment for the stop character arrays in
g_data_input_stream_read_{upto,until}*(), which are
considered bytewise and not as UTF-8 characters,
and in case of ...upto can usefully contain
an embedded NUL.
glib/gconvert.c: Annotate byte arrays, (out) and (nullable)

The conversion utilities deal with strings of different
encodings, which furthermore may carry embedded null characters.
This should be reflected in the annotated types for the parameters
and return values.
Added annotations for output parameters and nullability where missing.
g_data_output_stream_put_string(): de-UTF-8 the string parameter

The data stream does not care about the string encoding, so it
makes sense to make it accept arbitrarily encoded strings in the
introspection as well. Most of GDataInputStream's interface works
in terms of bytestrings, too, so this will bring symmetry.
g_file_get_basename(): bytestring annotation for the return value
Added g_unix_socket_address_get_path_full()

An introspectable version of g_unix_socket_address_get_path(),
with the returned buffer's length provided via an out parameter.
g_charset_converter_convert(): added byte array annotation on @output
glib/genviron.c, GSubprocessLauncher: no "filename encoding" in docs

Removed all mentions of GLib file name encoding referring to
the environment strings. The env var content has no defined relation
to GLib's notion of filename encoding, or any encoding whatsoever.
It would be wrong to pass all UTF-8 strings through
g_filename_from_utf8() in order to put them into the environment,
for one thing.
glib/genviron.c, GSubprocessLauncher: bytestring annotations
Bytestring annotations on g_app_launch_context_{setenv,unsetenv}