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.
This obviously needs to be fixed. I use it for KroneckerProduct in a Ctest.
* are you OK with using unsupported in a Ctest?
* if so, what is the right way to include this directory