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
COMP: Update ITKv4 to include ObjectFactory Leak Fix.
COMP: ConstBoundaryCondition header was missing.

Previously the ConstBoundaryCondition header was implicitly included
from other headers.  It now must be explicitly specified if used.
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
COMP: Properly link SFLSRobustStat3DTestConsole CLI executable

Contributed by Matt McCormick
COMP: Fix link error related to ObjectFactoryBase methods

Contributed by Matt McCormick
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.
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
COMP: Ensure that module relying "DWIConvert" also work when build against ITKv3

Backward compatibility with ITKv3 is maintained by aliasing the module.
COMP: Ensure ITK Wrapping is disabled

The name of the variable used for turning on WRAPPING in ITK has changed.
COMP: Prevent DCMTK double free errors.

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

Contributed by Bill Lorensen
COMP: Update SimpleITK version to integrate update recent improvements

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