Let RBM/surfaceTangents handle empty normals

Fixes #133
Re-call doKinematics with default args in ABCDC

That's AllBodiesClosestDistanceConstraint. This allows for testing of the cpp
constraint class. Without this, passing a non-mex kinsol into ABCDC yields
fewer constraint values than passing a mex one.
Move empty normals handling to contactConstraints

RBM/surfaceTangents now throws an error if `normal` is empty.
Cleanup no-contact-pair case in contactConstraints
ABCDC respects kinsol contract.

AllBodiesClosestDistanceConstraint (ABCDC) no longer re-runs `doKinematics`.
`testKinCnst_userfun_userfun` now has an additional flag that specifies whether
mex dynamics should be used throughout - even when testing a non-mex
constraint. This flag is only set to true for ABCDC right now. The behavior of
`testKinCnst` for the other constraint classes is unchanged.
Merge pull request #137 from avalenzu/handle-empty-normals

Fix #133
Adds collisionRaycast to cmakelists.