plane: Make the normal optional when initializing

We can initialize the normal to the X axis if no normal vector is
passed.
tests: Add macros for reducing boilerplate

This stuff should probably live somewhere in GTest.
tests: Add graphene_plane_t suite
plane: Use fuzzy check for constant equality

Use the same epsilon used to check equality for Point3D coordinates.
tests/plane: Improve coverage

Add more unit tests for graphene_plane_t.
tests: Add pre-seeded, per-unit variables

We want to guarantee consistency of results across test units, so we
should provide standard variables to units to facilitate that.

The default variables current defined are:

  float x, y, z, w
  graphene_point3d_t zero
  graphene_point3d_t one

Others will be added on a case-by-case basis.
tests/box: Port to the test suite boilerplate macros
tests/point3d: Port to the test suite boilerplate macros
tests: Add two and half to the pre-seeded Point3D