ENH: Add GetCurrentIteration to ExhaustiveOptimizerv4

Change-Id: I823d080c1e5cf1a6b906d0d975695592aa45bdb4
ENH: Add FDFImageIO as a remote module.

This adds a  read-only image IO for FDF format files.

Initial work was done by Glenn Pierce (glennpierce@gmail.com) Code
brought up to current ITK standards by Nicholas Tustison
(mtustison@gmail.com) Converted to an ITK Remote module by Kent
Williams (norman-k-williams@uiowa.edu)

Change-Id: Ib4d0de862fe4dff5351e14991fd28af7762fcd21
ENH: Improve DataObjectDecorator with Modifiable, Graft ReleaseData

Allow the component held by the DataObjectDecorator to be
modified via the GetModifiable method. The MTime of the held component is propagate to the
decorator.

Additionally a Graft method is added which just copies the pointer so
the two object refer to the same component.

The Initialize method was implement to add support for ReleaseData
during pipeline execution.

Because the ImageRegistrationMethod uses the output as input for the
initial transform, the output data object can't be released before
update. The image filters also by default operator by no releasing the
output by default.

Change-Id: I2bea47efdcfdadcfa6a52c7e650435e63db34d46
PERF: replace image allocate followed by fillbuffer with allocate(true)

As per the C++2003 spec, a new-initializer of () will initialize
POD, and arrays of POD to 0.

This makes the idiom

image->Allocate();
image->FillBuffer(0);

can be replaced by

image->Allocate(true);

The rationale for the change is that the built-in initialization,
probably something like an in-line call to memset, is going to be
more efficient than FillBuffer.

Structured types are initialized by their default constructor.

The default of 'Allocate' (i.e. image->Allocate()) is the old
behavior, with no initialization.

Change-Id: Iaea48be9a245c24e32faa921230321699b285f5e
BUG: Remove FEMRegistrationFilter debug code.

Change-Id: I091bf69010061e2075ab919226eeff73cf884c45
ENH: Add currentIteration to the AmoebaOptimizerv4

The "get_num_evaluations" function, from the vnl optimizer, returns
the number of evaluations used in last call to the "minimize" function.

The number of evaluations are summed up after each call, and the sum
value is compared to the maximum number of iterations to check the
convergence value. Therefore this sum value is considered as the number
of current iteration.

Change-Id: I7770550f903c2a97bb9c0adf0eb263207a121fdf
Merge topic 'maxNoOfIters_2'

6df2abeb ENH: Add currentIteration to the AmoebaOptimizerv4
Merge topic 'ImproveDataObjectDecorator'

fb366c91 ENH: Improve DataObjectDecorator with Modifiable, Graft ReleaseData
Merge topic 'currIterForExhOptv4'

b294e955 ENH: Add GetCurrentIteration to ExhaustiveOptimizerv4
Merge topic 'FEMRegistrationDebug'

3b20d837 BUG: Remove FEMRegistrationFilter debug code.
Merge topic 'FDFImageIO'

cbcd1d85 ENH: Add FDFImageIO as a remote module.
Merge topic 'AddZeroInitialization'

bfae2966 PERF: replace image allocate followed by fillbuffer with allocate(true)