Go back to Boost 1.55.
Add an example using the plane.
Add some code for cross products.
Sketch out a model using triangles.
Add in final required dot product implementation.
Point lights need the shader.
Sketch out the triangle geometry.
Add some tests for the triangle intersections.
Don't play around with any of the signs for the cross product.
Add some more checks to make sure we handle some types properly.
Add some missing headers.
Allow a four argument constructor.
`unit()` absolutly must return a `unit_vector`.
More complex tests for the triangles.
Be stricter about types and the lambda capture.
Change some variable names for clarity.
Clarify some types.
Rename the matrix test file.
Add tests to make sure that matrix transforms of rays are correct.
Allow the start and direction types to be set.