Add support for fmincon options in NonlinearProgram

Now you can do things like:

```
nlp = nlp.setSolverOptions('fmincon', 'Algorithm', 'active-set');
```
We do, but it's not clear that we do (actually, this is exactly because of the eval(x) vs. x.eval() discussion we had today). `NonlinearProgram.solve()` calls `fmincon(obj,x0)`, but this is actually a call to NonlinearProgram.fmincon(), which passes the `obj.solver_options.fmincon` field to the real `fmincon`.