COMP: Undefine the min symbol for VC.

Visual Studio defines min as a macro and collides with the use of
std::min. Here we conditionally undefine the min macro.

Contributed by Luis Ibanez

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21591 3bd1e089-480b-0410-8dfb-8563597acbee
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