Transform is enabled, improvement, and implemented for a struct

I renamed the trait to Transform3 in order to match naming of Ray,Point,Rotation,etc. Same goes for its methods. Optimally, we may want to pass vector and point traits as generic arguments, but that can probably wait until Rust gets integer generic parameters (for Dimension).