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