BUG: GPU tests sometimes fails

GPUGradientAnisotropicDiffusionImageFilterTest2D was failing on a
certain Mac OS X 10.7.2 and 10.7.4 configuration even though the 3D
version passed there and the 2D version passed on the same hardware
with OS X 10.6.8.  After much effort, it was determined that this
patch fixes the problem.  It had been documented that Apple OpenCL
implementations weren't handling nested if statements like if(A && B
&& C), but in this case, the implementation wasn't working for if (A
&& B).  Breaking into two individual statements seems to work, but it
is not clear whether other compound if statements are affected.  Right
now, they seem to be working.

However, this compound if statement could be the issue for
GPUMeanImageFilterTest3D which is failing on other Mac
configurations.  Therefore, this patch cleans up those compound if
statements as well.  The GPUMeanImageFilterTest has also been modified
to output the result images in case this patch does not fix the problem.

Change-Id: Ia13343bc557b77b53abfb3da4a091d11d87a34a1
COMP: propogate compiler selection & flags to FFTW build

FFTW gets built via a CMake ExternalProject. The actual
build is done via an autoconf configure/make recipe. The
compiler and compiler flags weren't being propagated down into
the FFTW configuration pass; consequently FFTW could get built
with a different compiler and compiler flags than the rest
of ITK.

Change-Id: I81f3b42daf25d95742e5e2ef3a2fcf7e895a6d20
BUG: Fix WrapITK GCCXML ExternalProject dependency.

Redundant dependencies specified in the wrong location were causing multiple
simultaneous attempts at fetching GCCXML, which would cause CVS to fail.  The
extra dependency is removed.  Note that the dependency is already specified in
the itk_end_wrap_submodule_gccxml macro.

Also the most appropriate dependency for completion of an ExternalProject is
<ProjectName> instead of <ProjectName>-install.  This fixes build errors where
the build of GCC_XML complete, but make fails, requiring a manual restart of
make.

Change-Id: I2b289e1e55bacb11b84e0b62f0c2259cd7a5e99e
COMP: Compile wrapITK for python2.7,64bit on windows

Compile the python bindings for Python 2.7 64-bit on Windows 7 (64 bit)
using Visual Studio 2008 (Express, patched for 64-bit build)
Major Change is the gccxml flag -D"_HAS_TR1=0" needed for VS2008

Change-Id: I0574612cdb6f1476220bef456340434740da8571
COMP: Make sure the VC script gets executed after gccxml installation.

Change-Id: I88180fa3b6254bbdbaa6f0673ebe9bcc398c8240
COMP: Add "#include <functional>" to classes for VS2012

Change-Id: I4b106fd5b72059386d407b0cabf5ff0875ee96cd
BUG: fix writing a corrupt meta image header from unknow metadata

If an entry in the metadata dictionary which had a type that the
MetaImagIO did not know about then an empty string in the written out
for the value. This is not readable by the metaIO library. So these
unknow or empty metadata entries, are not written.

Change-Id: I322676fdc63ba3b76e21968f986e1e841c0b8e38
BUG: Added missing include <algorithm>

The missing include turned up when compiling an application
with Visual Studio 2008.

Change-Id: Ide1c8f417273a769a613b6c0d29bac892dfd653a
PERF: Fix usage of ElementAt in PolyLineParametricPath to use const version

PolyLineParametricPath::Evaluate function uses VectorContainer::ElementAt function.

There are 2 function signatures of ElementAt, differing only by return type and function const-ness.
The non-const version of the function also calls Modified on its object, which is relatively expensive operation

Calls to m_VertexList->ElementAt() in PolyParametricPath:Evaluate result in the non-const version being used. This solution static_cast the m_VertexList object to the const version which will tell the compiler to use the const version of ElementAt.

Change-Id: If4d256c65bebe6a6d57092b8a091d8ae0305f61e
Merge branch 'release'

Conflicts:
	CMake/itkExternal_FFTW.cmake
	Modules/Filtering/DisplacementField/include/itkExponentialDisplacementFieldImageFilter.hxx
	Modules/IO/Meta/test/itkMetaImageIOTest2.cxx

Change-Id: I90aed47d2d52f0cdcf24d46942fd439db3e3a574
Merge topic 'BSplinerOrigin'

a4ca91b BUG:  Control point grid origin wasn't set correctly.
BUG: fix for overlay functor for llvm optimization bug

A varietly of overlay releated image filters were producing testing
failures with apple's llvm build 5658 compiler. The blending loop has
been manually unrolled as a work around.

This error was observed on mini6 on the dashboard.

http://open.cdash.org/viewTest.php?onlyfailed&buildid=2581686

Change-Id: If39f057d0e507395e4b2840c3ee3aba4d024d06c
Merge branch 'release-FixOverlayFunctor' into release
Merge branch 'release'
ENH: adding support for VectorImage output in LabelMapCountorOverlay

Adding GenerateOutputInformation methods to set the number of
componets in the output image to 3, to support VectorImages.

Change-Id: I0f103fc9d645e0e22645414d5b323612a8d618a8
BUG: Fix multi-object MetaIO reading for ASCII MetaVesselTube.

The code to avoid unrecognized characters at the end of a MetaVesselTube was
consuming the next object, in particular the ObjectType field, which interferes
with the ability read a scene file.

This patch is a backport to the release-3.20 branch.

Change-Id: I3c490ac14fff1bc1ad51a9d85b52ab04beb0540e
Merge branch 'metaTubeReader' into release-3.20
Merge branch 'release-3.20' into release
Merge branch 'release'
ENH: Creating a typedef for the modified time

Change-Id: I191bcb1f3a3f7509e4c6033e38182ce5f1c62162