Merge pull request #2 from mposa/collision-dynamics-integration
Change closestPointsAllBodies (cpp) outputs

Points are now output in body frame. Also, it now returns just the points,
distance, and normal.
Changes to `CMakeLists.txt` to make things compile

Comments out all of the IK infrastructure while the collision interface is
being updated.
Get bullet gradients working (messy commit)

Just want to make sure I don't lose the progress I've made here. The most
important change, however is not in Drake - Bullet ought to be compiled with
double precision (which is *not* the default). There's a switch in the Bullet
CMakeLists.txt. Any code that includes the Bullet headers also needs to contain

```
```
or that flag needs to be set for the whole build.
Fix frame of closest points returned to MATLAB.

I was missing the transformation from the geometry-element frame to the link
frame.
Add getLinkTransform method to Element class
Comment out some debug print statements.
Set margin to zero for boxes and meshes.
Add testCollisionGrad.

This needs work to be proper unit test
Add two new options to geval for numerical grad.

- `diff_type` takes values of 'forward' or 'central' geval uses the corresponding
  finite difference scheme to compute the gradients.
- `da` takes a numerical value. This is the step size for the numerical
   differentiation.

Need to add these to `geval`'s top comment.
Add signature and comment for new collisionDetect
Use double precision for Bullet.

Define BT_USE_DOUBLE_PRECISION in collision CMakeLists.txt. We shouldn't need
to do this once we can read it from the pkg-config file properly.
Fix inheiritance and ctor of RigidBodyMeshPts
Return one potential contact per geometry pair

This is a change from the previous approach, which returned one potential
contact per pair of bodies. The old approach could lead to the closest points
jumping from one geometry to another. The downside to the new approach is that
there are many more potential contacts for systems with many contact shapes per
body.
replaceContactShapesWithCHull replaces all shapes.

This is useful for 'condensing' bodies that have lots of contact shapes, as it
reduces the number of potential contact points (see 452e044).
Add margin to mesh and cylinder contact shapes

This is an internal change to drakeCollision. The added margin makes bullet's
GJK/EPA much more robust. The margin is removed from the returned results, that
is the closest points are on the surfaces of the original geometries, not the
expanded ones.
Uncomment collisionmex in CMakeLists.txt.
Implement collisionDetect with Bullet.

Since the Bullet collision world is part of the cpp-RBM, the order of steps in
RigidBodyManipulator/compile had to be altered slightly.
Add collisionDetectTest. Test fails.

Moved from bullet_collision_closest_points_test.m.
collisionDetectTest passes again.

The closest points were being adjusted for the Bullet margin, but the distance
returned was not. Now it is.