tests/sphere: Port to the boilerplate macros
tests/triangle: Port to the boilerplate macros
Use the correct annotation for optional in arguments

The `(optional)` annotation is only meaningful for `(out)` arguments,
meaning that it's possible to ignore the argument by passing a NULL
pointer to it.

The `(nullable)` annotation is meant, among other things,  for `(in)`
argument that can be replaced with a NULL.
triangle: Make init arguments nullable

If a point or a vector representing a vertex are NULL, the (0, 0, 0)
coordinates should be used instead.