Topic/plat 6658

* Extended SmileInterpolatorSABR into **SmileInterpolatorSABRWithExtrapolation** such that SABR takes left and right extrapolations as **SmileExtrapolationFunctionSABRProvider**. 
* Two choices are available for the extrapolators, **ShiftedLogNormalExtrapolationFunctionProvider** and **BenaimDodgsonKainthExtrapolationFunctionProvider**.
* Smoothness of the extrapolations at cut-offs is tested in **SmileInterpolatorSABRWithExtrapolationTest**.
* Extended SABR-specific methods (and also only right extrapolation can be applied to these methods), CouponIborInArrearsReplicationMethod and CapFloorIborInArrearsSABRCapGenericReplicationMethod, into **CouponIborInArrearsSmileModelReplicationMethod** and **CapFloorIborInArrearsSmileModelCapGenericReplicationMethod** which take **InterpolatedSmileFunction** constructed from GeneralSmileInterpolator.
* Consistency between the old methods and the new methods (in terms of the right extrapolation with SABR) is confirmed in the test class **CapFloorIborInArrearsSmileModelCapGenericReplicationMethodTest**
This would be faster if rather than using CapFloorIbor and a MulticurveProviderInterface, you cached the constant values (fwd, df, t) and called BlackFormulaRepository.price with the strike and corresponding volatility