Tweaked computation of tangent space

striked out a potential bug when passed tangent is lin. dependent on the
given surface normal at that hit point.
Exported tbs (in hit_record) computation into prive method

added documentation.
implemented computation of texture coordinates for plane

also some bugfixes:
Fixed computation of tbs matrix
Fixed to_a for vector3f - last component was always nil