Backport fix from master: fixed index access
fix ManipulateDistribution::convolve() QL_REQUIRE
fix CommodityCurve::dates_ and CommodityCurve::data_ leak 

each time you call CommodityCurve::setPrices()
fix potential EnergyCommodity::secondaryCostAmounts_ leak

each time you call EnergyCommodity::calculateSecondaryCostAmounts()
fix SmileSectionUtils::SmileSectionUtils() insertion values to "k_"

```C++
k_.push_back( tmp[i] * f_ );
```
was without check
fix "RecursiveCdoEngine::loss_unit_" init

before getting "std::min_element(lgds.begin(), lgds.end())"
in "lgds" removed all "0" elements. But this is not correct removing.
std::remove() only moving all the elements that not equal to "0" and return iterator to the new end.
instead of "0" lgds contains trash. There are two ways:
1. get iterator to the new end: std::min_element(lgds.begin(), new_end_iterator)
2. really erase all "0" from lgds: lgds.erase(std::remove(lgds.begin(), lgds.end(), 0.), lgds.end());

cplusplus.com/reference/algorithm/remove/

I suggest 2
add endpoints for sections with limited strike range,
move deleteArbitragePoints from KahaleSmileSection to SmileSectionUtils,
delete unused member variables,
use otm option to imply volatility from price,
reformat source code
change criterion to identify optional flows to exercise date <= accrual start date
make sure that min and max strike are added only once
Merge pull request #36.
Merge pull request #35.
Fixed IborCoupon construction with null fixing days.

The coupon was used the passed fixing days instead of the ones
previously processed by the base class constructor.

Thanks to Lisa Ann and Gerardo Ballabio for the heads-up.
Merge latest changes from 1.3.x branch.
Add __lt__ methods for Python 3 compatibility to date.i and money.i.

Python 3 no longer supports __cmp__ methods and requires __lt__ methods
for comparison.  For backward compatibility with Python 2, previously
implemented __cmp__ methods in the .i files are not removed.
Remove leading zeros from integer literals.

Python 3 raises syntax errors for leading zeros in integer literal while
Python 2 interprets them as octal numbers.  Neither is a desired
behavior.
Port Python 2-specific syntax into Python 3-compatible syntax.

Note that the resulting code is intended to be compatible with both
Python 2 and 3.
Use Python 3-compatible syntax for print
Avoid using module function removed in Python 3
Remove unused imports and variables
Check major version to select import syntax.

This makes the module compatible with older Python versions.