simd4x4f: Implement missing is_2d() function
Allow overriding the fast paths

For benchmarking purposes we should allow overriding the fast path
selection through the definition of two symbols. First, we need a
`GRAPHENE_FORCE_USE` symbol to disable the selection done when
generating the graphene-config.h header at configure time; this
allows the user to define the appropriate `GRAPHENE_USE_*` symbol
prior to including the main graphene.h header.
build: Add Makefile conditional for GCC vectors

Like we have for SSE2 and ARM NEON.
build: Rename GRAPHENE_FORCE_USE to GRAPHENE_BENCHMARK

We're only going to override the configure-time selection when
benchmarking Graphene.
Add the prototype of a benchmark suite

We want to test the various implementations of the fast paths inside
Graphene, so we should have at least some form of benchmarking suite
for them.

The suite is private, but its API is modelled on GTest and the GObject
performance tests. It's not perfect: the build is especially clunky and
needs further refactoring for the rules, so that we can avoid
replicating them all just because we change a pre-processor define.