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 Segment2d more robust

- prevent the instantiation of segments where
  _end == _begin
- remove default constructor to enforce that
MATH: refactor Line2d

- simplify most mathematical calculations
- prevent instantitation of undefined line
- remove default constructor
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