Replace G_(BEGIN|END)_DECLS with out own

If we want to drop the hard dependency on GLib, we can start with this.
alloc: Drop GLib code

Use size_t, fprintf(), abort(), and strerror().
Replace `gboolean` with `bool`

Chip away another bit of the GLib dependency.
Remove g_return/g_assert

We fly without safety net underneath the trapeze.
Replace GLib macros with our own

We use only a few of them, and we can re-implement them in a private
header.
docs: Do not parse graphene-private.h
matrix: Remove g_print()

Use fprintf() instead.
Replace G_GNUC_EXTENSION with __extension__

We're already protected by GNUC checks, so we're sure we're going to
compile the code using the GCC __extension__ symbol using GCC or a
GCC-compatible compiler.
Drop GLib as a hard dependency

We can build Graphene without GLib, now. This means that Graphene can
drop the hard requirement on GLib in its pkg-config file as well.

GLib is still required for:

 • building GObject types
 • building the test suite
 • building the benchmark suite
 • building the API reference, by way of requiring the GObject types

but it's possible to disable all of the above at configure time.
build: Remove global flags from benchmarking suite

We don't need the full Graphene compiler and linker flags: we only need
GLib for building the benchmarking test suite.
build: Add a variable listing the SIMD implementations

We can use it for feature discovery if we expose it in the pkg-config
file.
build: Add configuration variables to the pkg-config file

We list the platform-specific flags for SIMD types that we used to build
Graphene, as well as the list of SIMD types enabled. This allows feature
discovery for client code.