Partially implemented immutable CollisionVolumes

Partial because CollisionStrategy is still allowed to be set, as well as
CollisionModel is going to require more thought to make immutable as it
is effectively an entire tree of CollisionVolumes and making that
straight immutable would be a mess.

CollisionModel is unfinished because of this, but BoundingBox,
BoundingSphere, Ray, Segment, and Plane are all immutable and should be
usable.

Signed-off-by: Dalton Pelc <daltonjpelc@gmail.com>