Added Hagan pricing engine for irregular swaptions.

Thanks to Andre Miemiec.
Boost 1.39 or later required.

This allows one to use make_shared to create shared_ptr instances.
Unfortunately, the C++03 version only allows a maximum of 9 constructor
arguments, so we won't be able to use it everywhere.

(Also, let's use make_shared in new code, and by all means use it to
replace explicit new when you come across it, but I wouldn't go and
hunt for all allocations. A quick grep call gives more than 1000 hits,
and the time to change them all is better spent for something else.)
Added Vanna/Volga pricing engine for FX barrier options.

Engines were provided for both single- and double-barrier FX options.
An analytic engine was also provided for double-barrier equity options.

Thanks to Yue Tian.
Use boost::make_shared in barrier tests.