Added Hagan pricing engine for irregular swaptions.

Thanks to Andre Miemiec.
Merge remote-tracking branch: upstream/master