add a very basic implementation of mixed LCP as an MILP in gurobi

This gurobi lcp implementation can be dropped in as a replacement for pathlcp in TimeSteppingRigidBodyManipulator.m/solveLCP() by changing:

```
z(active) = pathlcp(M(active,active),w(active),lb(active));
```

to

```
z(active) = gurobi_lcp(M(active,active),w(active),lb(active));
```

It's generally anywhere from 2 to 10X slower than pathlcp, and it occasionally takes substantially longer, but it's still interesting to have an alternative available. I've added very basic warm-starting using the previous integer optimal solution, but unfortunately gurobi doesn't support more complex warm-starts for mixed-integer models, as far as I can tell. 


done!

On Tue Dec 16 2014 at 3:28:08 PM Russ Tedrake <notifications@github.com>
wrote:

> In util/gurobi_lcp.m
> <https://github.com/RobotLocomotion/drake/pull/593#discussion-diff-21929392>
> :
>
> > @@ -0,0 +1,93 @@
> > +function z = gurobi_lcp(M, q, l)
>
> one last request. can we put these in the solvers directory, instead of
> util?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/RobotLocomotion/drake/pull/593/files#r21929392>.
>