Definitions for Ray, Sphere, and Object typeclass

Using a plain Vec3 for Points
Added intersection tests for Ray-Triangle

Changed result type of intersection to include normal.
Ditched Object class in favor of single data type

This is not Java.  Polymorphism does not work that way.
Basically I wanted to be able to have [Object].