GJK implementation (returns non-zero vector for no intersection, or zero vector for intersection)