Spline implementations

We provide different implementations with different storage layout, i.e., a different (number) of Vectors that store knots, values and derivatives.

s = hermitespline(..., :t_x_dx)  # Vectors t, x, dx
s = hermitespline(..., :t_xdx)   # Vectors t, x_dx (2-tuple)
s = hermitespline(..., :txdx)    # Vector t_xd_x (3-tuple)