Trajectory Optimization

This is not really intended as "ready to accept," but I wanted to start the conversation on trajectory optimization. I added (what I hope is) a pretty flexible framework for direct methods for traj opt, along with some implementations for some first-order integration schemes and direct collocation. The code is far from being speed-optimized, and I think one of the important discussions should be on how to prevent repeated, unnecessary calculations, similar to what Hongkai has with kinsol for inverse kinematics. 

I also added a ConstraintManager class, which is just intended to be a general interface for combining multiple constraints into one. I think this would be a good approach to describe more complex constraints, like support polygons and complementarity constraints.
I personally think integration_method should be an option, with one of them being set as a default.  Having it as a mandatory first argument forces people to decide explicitly - it seems like you want that (I personally think it's a burden that I would only want to change if something wasn't working with the defaults).  But it also breaks the parallelism with, e.g. Dircol, since it now takes a different set of arguments.