Implemented generic SAT intersection test.
Optimize Frustum-Frustum intersection test performance by migrating to using GJK algorithm. Implement support to Frustum for utilizing the generic SAT test algorithm, which is slower. For Frustum-Frustum, the old naive test took about 500k clock cycles, whereas SAT now takes 34k cycles in negative case, and 480k cycles in positive case. The GJK algorithm takes 20k cycles in the negative case and 31k cycles in the positive case, being a clear winner and 10x faster than the old naive version.