matrix_init_look_at: Handle corner cases better
matrix_init_look_at: Handle corner cases better

graphene_matrix_init_look_at() currently breaks badly in the case
where the given point is either the same as the eye, or in "up" direction
from the eye.

The exact definition of look_at() kinda breaks down in this situation,
but this is the behaviour three.js uses, and its better than nothing.

ebassi/graphene,ebassi/graphene