HybridTrajectoryOptimization and minor updates

Added HybridTrajectoryOptimization and Compass Gait example. Minor changes to ContactImplicitTrajectoryOptimization, particularly the initialization of slack variables.
It's not quite the same thing, which is why I avoided that name. I couldn't see a way around it, right now, the program has to be compiled once and only once. It would take quite a bit of caching and bookkeeping to essentially "undo" a compile, and I thought this would be riskier than forcing compile as a one time operation.  re the comment below, I'll add checks that addMode*** cannot be called after compilation.  Hopefully the comment block at the top of the class makes this clear.