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**
Whilst this checks and exception was thrown and it contains a known string, it does not check the class of the exception thrown. Could the TestNG `@Test (expectedExceptions = ... )` be used with these constructors in separate tests?