Added Interpolation and Least Squares utilities

Why not use directly numpy `lstsq` method on the matrix M instead of computing `B.T*B`? If you compute `B.T*B`, as in this case, you are making a lot of operations which are not needed in principle. Numpy's methods use the action of B and B.T to compute the solution without assembling the full `B.T*B` matrix.