PERF: Minimize redundant function calls

The highest percentage of time in the MattesMutualInformation
filter was spent evaluating if specialized work needed to
be done for displacment fields.

In a minimalistic test case, prior to this change the registration
took 846 seconds, after this change, registration took 309 seconds.

bin/BRAINSFit   \
  "--costMetric" "MMI"  \
  "--failureExitCode" "-1"   \
  "--numberOfIterations" "1"  \
  "--numberOfHistogramBins" "50"  \
  "--splineGridSize" "7,5,6"  \
  "--numberOfSamples" "14000"   \
  "--minimumStepLength" "0.1"  \
  "--initializeTransformMode" "useCenterOfHeadAlign"  \
  "--transformType" "BSpline"  \
  "--fixedVolume"  "BRAINSTools-build/ExternalData/TestData/test.nii.gz"  \
  "--movingVolume" "BRAINSTools-build/ExternalData/TestData/rotation.rescale.rigid.nii.gz"  \
  "--outputVolume" "BRAINSTools-build/BRAINSFit/TestSuite/BRAINSFitTest_BSplineScaleRotationRescaleHeadMasks.test.nii.gz"  \
  "--outputTransform" "BRAINSTools-build/BRAINSFit/TestSuite/BRAINSFitTest_BSplineScaleRotationRescaleHeadMasks.h5"  \
  "--maxBSplineDisplacement" "7.3"

Change-Id: I3782e78cae99acfe577a40444882688ae5b76472
PERF: Pull loop termination constants out of loop

When evaluating loops, loop termination criteria that
are accessed via member functions should not be
used at every iteration.  Common static loop iteration
termination values are stored locally and reused.

Change-Id: Ia847f411640cce6921b28ac2a2da448c40ebe24c
ENH: Started refactoring the CompositeTransform class

Prefer initialization to assignment (i.e. use class constructors rather than resize
variables).

Change-Id: I79a0dd7e3e22d3e5866b13b343c7f14296293606
STYLE: Remove unused compile all code for Python Wrapping

This code is commented out since very long time, so not tested with recent python versions.
Anyway the compileall.py file is now a module by itself so this would need some fixes.
If it's not used and not tested, we should just remove it.

If we need to byte-compile the python files one day for whatever reason,
writing some lines to do it from scratch should not be too difficult.

Change-Id: I876213993ecee932ee87d1ef98618cf8b7407aa9
COMP: Google double-conversion (reduced)

This corresponds to commit hash
  c7734598e2ee084c17e1b8a41daa569fb021d593
from Google repository
  http://code.google.com/p/double-conversion
COMP: Update the DoubleConversion library upstream update script.

1. Replace the SHA for DoubleConversion-upstream
2. Fix the commit message for DoubleConversion-upstream

Change-Id: I77d57a25fd1fe2dad41167dad3773ad72e77ffbf
BUG: Fix print function errors in pygccxml.

Change-Id: I7873b713df144008c5f518542bc2a6f886e7888c
ENH: Added call to Print() method

Attempt to improve the code coverage for itk:SigmoidTransferFunction and
itk::LogSigmoidTransferFunction classes by calling the objects' Print()
method.

Change-Id: I916396f82113d572187f3e405716a9bd753a2567
STYLE: Changed LogSigmoidTransferFunction template argument names.

The itkLogSigmoidTransferFunction template argument names were changed in
order to keep a better coherence with the rest of ITK, and also the recent
changes in the SigmoidTransferFunction class in this regard.

Change-Id: I2c5e1e3d0a8164fc34eebeeb2cf3ec6a17b0eca9
BUG: Fix print functions in igenerator.py.

Change-Id: I18e0505355dfbea05c61776b901655755c9c2f2c
ENH: add Set/Get initial parameters to ITKv4 registration framework

Currently the only way the initialize the registration configuration is
to set up an initial moving transform. Inside the registration filter,
this initial transform is added to a composite transform along with the
output optimizable transform, and this composite transform is used for
metric evaluation at each iteration.

In this case, we also need to use a composite transform after the
regsitration process to concatenate the initial moving transform and
the output of the registration filter to create the final transform for
the resampler.

Doing all above is a lot more work that is necessary in many cases.

In this patch new APIs are added to the ITKv4 registration framework
that allow us to directly initialize the output optimizable transform.

These new API is called "InitializeOptimizableParametersFromTransform",
and it provides a new option for iniatialization of the registration framework.
This feature lets us to initialize the optimizable registration transform
directly in a same way as we used to do in ITKv3.

Change-Id: I49a1ee0fd88e289bbc266ea61e68d6d0968fd761
DOC: The use of VersorTransformOptimizerv4 is deprecated.

The use of this optimizer can be replaced by the
RegularStepGradientDescentOptimizerv4 that can generate more precise
results on versor transform optimization.

Change-Id: I987d237f35a2affa5d7b791b34cfeb8d7b37fa7b
ENH: remove VersorTransformOptimizerv4 from ITKv4

The recently added RegularStepGradientDescentOptimizerv4 can be used
form both vector and versor transforms optimization. Therefore, the
versor optimzer can be considered as a duplicated class and can be
removed form ITK.

Change-Id: I2705f21fdb4667fa31bcabf5e18b1567d75ca961