ENH: Add InitialTransform as pipelined input with inplace option

The initial parameters for the output transform can not be set by an
initial transform object. This initial transform by default runs
inplace by doing a move of the transform object in the input to the
output. Alternatively, a deep copy via a clone can be done. If no
initial transform is specified the transform is default constructed?

The pattern of InPlaceImageFilter was followed, where the "copying" is
performed in the AllocateOutputs method.

Additional GetTransformOutput and GetTransform methods were
added. This follows the name pipeline input/output monkier with the
"Output" being the decorated object. As well as GetModifiableTranfrom
method.

Change-Id: Ic62dbc15d568d8578a82fa579071e6fde35e1960
ENH: Use Transform base class as default template parameter

With the ability to set an initial transform, it is no longer
necessary for the ImageRegistrationMethodv4 class to directly
construct the output transform. This type can be copied/cloned/grafted
from the InitialTransform.

This reduces the permutations for methods which need to be
instantiated making it possible to wrap this class for SimpleITK and
WrapITK.

Change-Id: I4a3af0aad48bbf3203d7b3f1138547d04cdde684
ENH: Use InitialTransform in deformation examples

remove const_cast

Change-Id: Ica2ffc3ceae3e6a25f88dba01b371f05e45239e3
Merge topic 'ImageRegistrationMethodv4PipelineInputs'

2e998477 ENH: Use InitialTransform in deformation examples
18aecd4e ENH: Use Transform base class as default template parameter
8aecb116 ENH: Add InitialTransform as pipelined input with inplace option