Topic/plat 6722

I have refactored our (black) implied volatility code, so it takes two functions (Function1D) which give the price and vega as functions of volatility. This allows us to have a single piece of code to handle implied volatility. Other implied volatility functions now call this method, and the API has not changed.