Intersection detection cleanup, GHC 7.8.2, Vec.

- Created Intersect class to generalize intersection.
- I am now using GHC 7.8.2 to build, though everything
  should still work with 7.6.x.
- Stopped using polymorphic Vecx's, specialized to
  `data Vec3 = Vec3 GLfloat GLfloat GLfloat`. This
  allows for strict unpacked Vecs. I may or may not
  keep these strict/unpacked.