Forecast reconciliation with non-linear constraints