PERF: Re-use jacobian rather than instantiation

A temporary jacobian value was always created for
and resized at every iteration of the program call.

This was increadibly in-efficient during registrations
and was the #1 time consuming portion of the code for
many registration examples.

The new function:
ComputeJacobianWithRespectToParametersCachedTemporaries
was created to allow for improved performance.

Change-Id: Ic405b9d26c5fdf3660941372e9bb9814c2792143
PERF: Avoid unnecessary construction of vnl_matrix.

The simplistic math operators for matrix multiplication require
unnecessary construction of temporary matricies in order to
get the math operations completed.  By writing a custom matrix
multiply that includes a stride for the output, we can avoid
an unnecessary copy.

Change-Id: I4249b3e6e2b1efe687b05fac9cdaf568210a9d94