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.
If we pull in the change such that nq != nv, (which I believe is going to be merged into master later),  then we need to change this part. So I suggest we add a message here
```
nv = robot.getNumVelocities();
if(nq ~= nv)
  error('This is supported yet`);
end
```