Add models, triangles, and Binary Space Partitioning

The combination of triangles, models, and Binary Space Partitioning from soriat/RayTracer.