Ik cherry pick4

Include all the commits I made back from Nov 16th. Include all the necessary commits made in the trunk, so that I can test this topic branch.

This topic branch add the following features to drake
1. Add a new type of constraint, the SingleTimeLinearPostureConstraint. This constraint specifies lb<=A*q<=ub. Also inverseKin,inverseKinPointwise,inverseKinTraj support this constraint type, but not the approximateIK.
2. All IK functions now have a separate C++ interface, so they do not need to be called through MATLAB. Also they have the C++ test files, built in pod-build/bin
3. All constraints can be constructed from the same function, constructRigidBodyConstraint. Each non-abstract constraint has a unique constraint type.
4. I add constness to the methods in RigidBodyConstraint.
5. URDFRigidBodyManipulator now add joint limits and masses to its field. But URDFRigidBodyManipular and RigidBodyManipulator in MATLAB are not exactly the same for the same URDF file. The former one sort the link and joint names, so the link/joint index are different from the MATLAB counterpart.
6. Add the method findLinkInd to C++ RigidBodyManipulator. It does not handle the regular expression yet, as does in its MATLAB counterpart.

Currently I fail sometimes in the util/test/testOrientation. Because rotmat2quat was changed. Will work on this next. The possible reason is that the test file is not correct.