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**
It is not clear why you sample the volatility given by SABR_PARAMETER at 1000 points between 0.002*forward and 1.001*forward -  SmileInterpolatorSABR (which is wrapped by InterpolatedSmileFunction) performs multiple 3-point SABR fits, which are potentially unreliable for strikes so close together. Furthermore, when requesting volatility at strikes > forward the the last 3-point fit is used (so the strikes at the forward and += 0.001*forward), which may not correspond to the (input) SABR parameters for ATM. 
Given the two prices only agree to 1e-1, the purpose of this test is unclear.