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**
The above two argument checks on this branch and the branch above are the same, perhaps test if `_extrapolatorFailureBehaviour` matches `quiet` or `exception`, check args, then branch inside this condition with logic like `if(_extrapolatorFailureBehaviour ==  quiet) ... else ...` ?