Topic/plat 6858

* Implemented **ProductPiecewisePolynomialInterpolator** and its wrappers, **ProductPiecewisePolynomialInterpolator1D**, **ProductPolynomialExtrapolator1D** and **ReciprocalExtrapolator1D**. 
* All of these have test classes, **ProductPiecewisePolynomialInterpolatorTest**, **ProductPiecewisePolynomialInterpolator1DTest**, **ProductPolynomialExtrapolator1DTest** and **ReciprocalExtrapolator1DTest**.  
Please use non-unit and non-zero constants, they tend to be better for catching mistakes :)