Merge pull request #25 from fanc999/master

Allow Build of Graphene on Visual Studio
plane: Remove unnecessary include
alloc: Return NULL if G_DISABLE_ASSERT is set

We only print an error and abort() if assertions are disabled;
otherwise, we simply return NULL and let the error bubble up.
alloc: Add an alloc() variant that 0-fills the memory

Similar to calloc(), just in case we want to guarantee that all our
alloc() functions return zero-filled memory, like GLib does.
Add graphene_frustum_t

The graphene_frustum_t is a structure representing a viewing frustum as
6 planes (top, bottom, left, right, z_near, and z_far).
gobject: Add plane and frustum GTypes
plane: Add annotations for alloc()

The graphene_plane_alloc() function is a constructor, and it needs to be
marked as such.
docs: Add missing symbols for GObject integration
docs: Add graphene-frustum to the API reference index
Add graphene_sphere_t

A representation of a sphere. Does not do much, at the moment.
docs: Add 1.0 symbols index to the API reference
docs: Add 1.2 symbols index to the API reference
simd4f: Add more comparison operators

We are going to need API to perform order relation predicates.

The added API has an untested ARM NEON implementation.
Add graphene_box_t

A 3D box, represented by two vertices.
sphere: Add init function for array of points

Similar to how we allow initializing graphene_box_t from an array of
points.
frustum: Add sphere intersection query function
macro: Put vectorcall macro under the Graphene namespace

Like we do with the alignment macro.
doc: Rename variable to let gtk-doc ignore it

It seems gtk-doc gets fairly confused with inlined functions.
tests: Check for GCC when using typeof()

It's a GCC extension; any other compiler, except Clang in GCC
compatibility mode, will need to opt it if they support it.
docs: Update the README

We provide more types, now.