GRIM/EMI: Check for collissions in setPos

- check for collissions in setPos(), too
- the boats in EMI's lava puzzle need collission handling,
  but they are moved solely via putActorAt
MATH: Don't normalize a (0, 0, 0, 0) quat

- this fixes the issue of the vanished boats in EMI's lava puzzle
- without the patch, the division by 0.0f causes the quat's values
  to be NAN
- the floating point NAN value is ignored by OpenGL, so the vertices
  are not drawn at all
EMI: enable reporting of floating point exceptions

- when not compiling with NDEBUG, enable
  floating point exceptions (for division by zero and
  for invalid floating point values (NAN))
MATH: add/fix matrix operators

- fix == operator
- add != operator
MATH: Make implementation of Line2d more robust

- assert on creation of a line where start and end are the same point
  (check the distance agains a threshold)
- assert on undefined operations for Segment2d objects which were
  initalized with the default constructor
- prevent division by zero
MATH: Refactor Line2d

- use standard linear equation Ax + Bx = C
- simplify most calculations
- assert on instantitation of undefined line
- remove default constructor
- remove unused function
MATH: make Angle and Vector3d class more robust

- assert on undefined input values
- clamp some intermediate values to the defined range
  which could be slightly violated due to floating point rounding
GRIM/EMI: gracefully handle critical floating point operations