franky switches the mesh format to use floats instead of double for performance, portability and memory usage purpose
fix some problem with the shader where the InNormals is being optimzed out
make GeomUtilHelper classes to reduce the code duplication of a bunch of render objects that created a square
and then consolidating the unittests to use these new classes
made the buffer write << operator for point to accept whatever type of point instead of just WorldPoint