Don't report assembly failure when optimizer throws an exception after achieving tolerance.

Fixes issue #164.

 Sometimes the optimizer will throw an exception after it has already achieved a winning solution. One message that comes up is "Ipopt: Restoration failed (status -2)". We'll ignore that now as long as we have a good result. Otherwise we'll re-throw the exception so that the IpOpt message will be displayed.