Fix Quaternion.RotationLookAt

I had some problems with this function, so i went over it's math and found few mistakes.

1) We can't use the up vector as-is for creating the new quaternion, we need to create a new relative up vector that will be the up vector for the new base/system.

2) Since the forward and up vector are not perpendicular to each other , the right vector (from cross product) needs to be normalized.

3) Not important, but i also changed the order of the cross products. since basically what we implicitly do here is to create lookat matrix and convert it to a quaternion. Quaternions may not have handness but the matrix math used until we get there have.

:)