Kinematic planning

Adds `LeggedRobotPlanningProblem` which encodes a planning problem for an instance of any `LeggedRobot` class in a solver-agnostic way. It has methods to generate dynamic or quasi-static planners.

Also adds `KinematicDirtran`  - the oft-referred-to linearly-interpolated counterpart of `InverseKinematicTrajectory`.

This still needs more documentation and probably tests, but I'd like to get the build servers running.
I've also submitted a pull-request to mitdrc/drake, as this enables collision free reach planning.
How about fixing the number of knots at the constructor, and then only specify the active knot indices?