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.
​That's an option, but one of the main motivations for this class is to
have an expression of the problem that's not tied to a specific number of
knot points. That way one can say -- "Hmmm... let's try that with 20 knots
instead of 10" and only have to change one number.​

On Fri, Sep 12, 2014 at 9:02 AM, Hongkai Dai <notifications@github.com>
wrote:

> In solvers/LeggedRobotPlanningProblem.m:
>
> > @@ -0,0 +1,287 @@
> > +classdef LeggedRobotPlanningProblem
> > +  properties
> > +    robot
> > +    supports = struct('body',{},'pts',{},'tspan',{},'constraints',{})
>
> How about fixing the number of knots at the constructor, and then only
> specify the active knot indices?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/RobotLocomotion/drake/pull/392/files#r17477031>.
>