Drake gradient util

Pull request for C++ gradient utilities. I put general purpose functions like {get,set}SubMatrixGradient, transposeGrad, etc. in drakeGradientUtil, and functions that compute gradients of geometrical things in drakeGeometryUtil.
according to https://github.com/RobotLocomotion/drake/wiki/Code-Style-Guide , constants should be ALL_CAPS .
I think all of them are pretty reasonable names, but SPACE_DIM is a little obtuse without context.