Simulation: evaluate variable bounds on initialize()
Variable bounds are allowed to be expressions of parameters, which can be overwritten at runtime. We now delay bound evaluation until initialize(), and use casadi to find values of bounds from the values of parameters.