Why is the terminal cost necessary in a `TrajOptProblem`, while terminal constraints are optional? In *e.g.* [this MPC for bipedal walking](https://github.com/stephane-caron/lipm_walking_controller) there are terminal constraints but no terminal cost.