MAINT: bsplines: reuse _deBoor_D from __fitpack

This improves performance over a homemade evaluation routine, making
it comparable to fitpack in performance.
Also use a simpler linear search, which gives some more raw speed.
MAINT: bsplines: use lapack banded solver instead of solve_banded

This is to reduce the memory footprint: solve_banded needs to make
a copy of the lhs matrix internally, but here we can directly construct
the collocation matrix in the LAPACK banded storage format.

Also move memory allocation to python level, simplify cython routines
ENH: bsplines: add least-squares spline fitting *with fixed knots*

With fixed knots, spline fitting is a linear minimization problem.
Thus construct and solve normal equations, using the fact that
the matrix involved is symmetric and banded, hence use banded Cholesky
decomposition from LAPACK.

Note that this is different from what Fitpack is doing.
MAINT: interpolate: move function definitions from __fitpack.h to _fitpackmodule.c