spline: some fixes to make Spline::intersect() work correctly

most of these issues are fallout from the conversion of the spline
class from a moments (second derivative) based approach to hermite
base functions:

- the second and third derivatives where incorrect, and the third
  derivative was not available in the public interface.
- The unit test did not check the derivatives
- The coefficients for the monomial basis were off by the factors
  stemming from the derivatives
- The intersectIntervall_() method used std::max() instead of
  std::min() at one place and still added the base offset for the x
  values as indicated by Stoer
spline: fix the monotinic_() method and creation of monotonic splines

also, extend the unit test for it. (*phew* that was much more fun than
appreciated because of all the index shifts. I'm still not 100% sure
that everything works in all corner cases, but at least my confidence
is at 95%.)
spline: avoid bogous "might be used uninitialized" compiler warning on GCC
fixup! spline: avoid bogous "might be used uninitialized" compiler warning on GCC
Merge pull request #427 from andlaus/fix_spline

spline: some fixes to make Spline::intersect() work correctly