Topic/plat 6858

* Implemented **ProductPiecewisePolynomialInterpolator** and its wrappers, **ProductPiecewisePolynomialInterpolator1D**, **ProductPolynomialExtrapolator1D** and **ReciprocalExtrapolator1D**. 
* All of these have test classes, **ProductPiecewisePolynomialInterpolatorTest**, **ProductPiecewisePolynomialInterpolator1DTest**, **ProductPolynomialExtrapolator1DTest** and **ReciprocalExtrapolator1DTest**.  
What happens with the left extrapolation?
Also, why linear? Does the PP form not make it trival to extrapolate as a continuation of the PP itself?