Change Math::buildOrthonormalBasis API + complete UnitTest

Now takes 3 pointers and checks all the possible cases.
It raises an exception is any pointer is a nullptr
It returns false if i is zero or close to zero, True if it succeeded.