COMP: Add ITKFactoryRegistration library centralizing ITK IO factory registration

This commit will ensure that ITK IO factory are properly registered on all
supported platforms.

When ITKv4 is build shared, the library holding the factory registration code
are build statically. As a consequence, when CLI module are loaded as library
the factory are registered multiple times. Around 800 factories where registered
and this was leading to poor performance when loading images.

This commit enable the building of a shared library named ITKFactoryRegistration
that should be linked against to ensure loading of the factory. This approach
can succeed thanks to the help of the ITK variable ITK_NO_IO_FACTORY_REGISTER_MANAGER.

This variable allow to disable the automatic registration of factory in selected part
of the code.

The following two cases are handled:
 - Registration of the factories within the Slicer executable.
 - Registration of the factories within CLI executable.

Fixes #2813

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21592 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update ITKv4 to include ObjectFactory Leak Fix.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21593 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: ConstBoundaryCondition header was missing.

Previously the ConstBoundaryCondition header was implicitly included
from other headers.  It now must be explicitly specified if used.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21594 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Explicitly list ITK component in attempt to reduce link command length

In find_package(ITK ...) specify the modules that will be used. This
reduces the number of libraries specified on the link command and
help reduces linking errors.

ITKv4 provides a script allowing to discover the list of ITK components.
See ./Utilities/Maintenance/WhatModulesITK.py

Contributed by Matt McCormick and Jean-Christophe Fillion-Robin

From: Matt McCormick <matt.mccormick@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21595 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Properly link SFLSRobustStat3DTestConsole CLI executable

Contributed by Matt McCormick

From: Matt McCormick <matt.mccormick@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21596 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix link error related to ObjectFactoryBase methods

Contributed by Matt McCormick

From: Matt McCormick <matt.mccormick@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21597 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update ITK and DCMTK to support DWIConvert provided by BRAINSTools

By adding DWIConvert to BRAINSTools, the logic necessary to support
this tool becames much simpler.  It will also reduce the burden
of maintainance.

The DWIConvert program was originally building a private version
of the ITKv4 DCMTK interface.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21598 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update python script to use DWIConvert module instead of DicomToNrrd with DWIConvert

The new DWIConvert is much more flexible and complete
in it's handling of DWI data.

Contributed by Hans Johnson

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21599 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Ensure that module relying "DWIConvert" also work when build against ITKv3

Backward compatibility with ITKv3 is maintained by aliasing the module.

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21600 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Ensure ITK Wrapping is disabled

The name of the variable used for turning on WRAPPING in ITK has changed.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21601 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Prevent DCMTK double free errors.

Also update version of DCMTK including some of the patch
contributed upstream.

Contributed by Bill Lorensen

From: Bill Lorensen <bill.lorensen@gmail.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21602 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update SimpleITK version to integrate update recent improvements

This version matches the one used during the AHM2013 Utah Meeting demos.

From: Bradley Lowekamp <blowekamp@mail.nih.gov>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21603 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Make sure itkTestMain.h is available when building extension

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21604 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Avoid build error on windows by shortening filename of generated pythonqt files

Thanks to Matt McCormick for testing the change.

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21605 3bd1e089-480b-0410-8dfb-8563597acbee