ENH: Move FFTComplexToComplexImageFilter out of Review.

The FFTComplexToComplexImageFilter and FFTWComplexToComplexImageFilter classes
are moved from the ITKReview module to the ITKFFT module.

The classes are renamed to be consistent with the other classes in the ITKFFT
module, i.e. ComplexToComplexFFTImageFilter and
FFTWComplexToComplexFFTImageFilter. The DIRECT TransformDirectionType enum was also
changed to FORWARD to ensure consistent semantics.

The two tests were consolidated by using templates to test both 2 and 3
dimensions and both float and double based pixel types.

The tests were not previously executed.  It is now executed with a comparison to
a baseline.

Likely due to copy/paste from the real-to-complex class of FFT's there was code
related to possible truncated output due to symmetry. However, since it is a
full complex to complex transform, we do not presume there will be symmetry
and only support the full transform.

Change-Id: Ia52a0a39f01d04f5e4c66a7d0e4d67d8d6048e2f
ENH: Add VnlComplexToComplexFFTImageFilter.

While an FFTW implementation of the ComplexToComplexFFTImageFilter was
available, a Vnl version is required that will provide an implementation for
the default ITK CMake configuration.

Change-Id: I56cbd0802f473fac3df769622c4d66a8bd2029a9
PERF: Remove dynamically allocated temporary in evaluate method

This patch also addressed for array subscript warnings in the
GaussianMembershipFunctionTest.

Change-Id: I6164e11f42999dcbfeeeb28945e5852315e254ab
COMP: Fix variable type for Set/Get macros

The wrong pixel typename was used for the Set/Get methods. This causes
a conversion warning with gcc 4.1.

Change-Id: Iee7e42258e5b19c69c76b3c1cb366cbdfba064a7
ENH: Use thread pool to dispatch multithreading tasks

Instead of launching a thread anew each time in
MultiThreader, create a thread pool, and
dispatch work to threads as needed. This
significantly reduces the thread
creation/reduction overhead.

The Threadpool implementation is added in
parallel to the older thread spawn method.  By
default, the thread spawn version is used, If a
program calls
MultiThreader::SetUseThreadPool(true), the
ThreadPool will be used.

The Thread Pool implementation can also be
selected at runtime by setting the environment
variable ITK_USE_THREADPOOL to a string value
other than NO or OFF.

Change-Id: Ibf308b14b37b8727b2878bf65306d01a12b809d6
ENH: Add GetCurrentStepLength to RegularStepGradDescentOptv4

The ITKv3 version of RegularStepGradientDescent optimizer, it could return
its current gradient step length. Knowing current step length can be
useful in observers to track the optimization process.
One good application would be in multi-resolution registration, where we
can change the stop criteria of the optimizer at each level while we keep
the continuity of the steps between different levels.

Change-Id: I6b9dd181c9be25cace9f6eca697942fdf0c12432
Merge topic 'GaussianMembershipIndexTemp'

fe34d49f PERF: Remove dynamically allocated temporary in evaluate method
Merge topic 'addCurrStpLengthToRegOpt'

2bcaa0ff ENH: Add GetCurrentStepLength to RegularStepGradDescentOptv4
Merge topic 'FFTComplexToComplex'

bc3e1606 ENH: Add VnlComplexToComplexFFTImageFilter.
685f3839 ENH: Move FFTComplexToComplexImageFilter out of Review.
Merge topic 'FixThresholdMaximumConnectedComponentsSetTypeForRelease'

8db59dc5 COMP: Fix variable type for Set/Get macros
Merge topic 'NewThreadPoolPatch'

058fcc80 ENH: Use thread pool to dispatch multithreading tasks