ENH: Adding libminc and updating MINC IO support.

Added libminc library inside Modules/ThirdParty/MINC to compile withing ITK.
Also rewrote MINC IO from Modules/Nonunit/Review/  to work correctly,
also added extensive testing to the module.

ENH: Modified UseITK.cmake to include automatic MINCIO initialization

BUG: MINC2 Metadata reading and writing is now supported and compatible with ITK standard

BUG: Dimension order and step sign is now preserved

BUG: Run uncrustify on all source code to satisfy ITK style requirements

BUG: Fixed error with wrong order of dimensions

BUG: Reduced number of tests

BUG: Fixed error in interslice normalization when reading floating point volumes
     in libminc, so updated GIT TAG

BUG: Made libminc to compile statically always and with itk_ prefix to avoid
     potential conflict with already installed libminc

BUG: Fixed a bug in underlying libminc library, updated GIT tag

BUG: Fixed a bug while reading vector images or time-series with zero time step

ENH: Updated to latest version of libminc

ENH: Making more tests

BUG: Fixed logical error when reading files with global normalization

BUG: Added tests for 4D Dti data and Labels

BUG: Forgot to change libminc git id

BUG: Reduced number of tests

BUG: Updated to latest version of libminc

BUG: Fixed a bug in libminc which affected building MINC2 module

BUG: Addded ability to store floating point data in a MINC2 volume with integer data type

BUG: Updated to latest version of libminc

BUG: Re-enabled test for rounding errors in case of storing floating point data in storage with integer data type

BUG: Fix warnings about unused or uninitialized values.  Add brackets for style consistency.

BUG: Fix uninitialized variable warnings and remove README

ENH: Added IO adapter for MINC style transformations (.xfm files)

ENH: Updated to latest version of libminc and fixed the way libmind is called to make .xfm files

BUG: Fixed errors in building on MacOSX

BUG: Fixed build on Windows

BUG: Second attempt to fix build on Windows

BUG: Suppressed CRT SECURE Warnings on Windows, fixed typo

BUG: Removed more warnings in Windows build

BUG: Fixed integer overflow in libminc

ENH: Rebased to the latest master

BUG: Trying to make build possible

BUG: Fixed bug while building with GCC

ENH: Rebased to current master

BUG: Updated copyright notice

Change-Id: Ie9ed4151dca83d5854cc713536a9594dc520c15a
DOC: Doxygen expansion of itkGetModifiableObjectMacro.

Also fix bug in Doxygen definition of itkGetConstObjectMacro. (not listed as
const).

Change-Id: Ic7ade94a71d825f815f2de29ea8b11dc79f4a5a2
ENH: Allow Get*FromTag to accept uppercase hex

Change GetLabelFromTag and GetValueFromTag to allow
for both lower and upper case hex.

Also update the documentation to use an example tag with
hexadecimal-range digits.

Change-Id: Id427a2b6af6f39aaa961135094d15a11fea6d40c
BUG: SignedMaurerDistanceMap in 4D

This patch fixes a bug in itkSignedMaurerDistanceMapImageFilter.hxx
that resulted in a seg fault when running the algorithm in
multi-threaded mode for any dimension greater than 3D.  The bug was
the result of incorrect construction of the vector "k", which resulted
in pixel accesses outside of the image.  This bug was not seen for
images of size 3D and below because the construction of the "k" vector
was only computed for one value or less.  But for any dimension 4D and
above, the computation was done in the wrong order leading to errors
that have now been corrected.

This patch also adds 3D and 4D test volumes for the Maurer algorithm
as well as code to test these volumes.  Previously, the algorithm was
only tested for 2D (degenerate 3D volumes with only one slice).  The
new test volumes embed a 3D (4D) binary cube in a 3D (4D) volume,
which enables easy visual validation of the correctness of the
distance map algorithm.  In these tests, the center 3D volume of the
4D distance map should be the same as the distance map of the 3D
volume.

itkSignedDanielssonDistanceMapImageFilterTest1.cxx and
itkSignedMaurerDistanceMapImageFilterTest.cxx were generalized to
operate on either 2D, 3D, or 4D images by templating over image
dimension.  This avoids code duplication in the tests.  The parameters
used in the itkSignedMaurerDistanceMapImageFilterTest.cxx test were
changed to match those in
itkSignedDanielssonDistanceMapImageFilterTest1.cxx to enable direct
comparison of the outputs of the two algorithms, and the comparisons
in the CMakeLists.txt compare the output volumes of the two algorithms
to ensure that they are the same.  As a result, the Maurer test images
have been replaced although it has been verified that the difference
between the old and new images was just a sign flip because of turning
the SetInsideIsPositive off (now consistent between Danielsson and
Maurer tests).

This fix addresses JIRA ticket
https://itk.icts.uiowa.edu/jira/browse/ITK-2907

Change-Id: Ifd3411db60d100efdd72d6c06593b88fdc6d0ac3
ENH: Simplify template parameters in itk::PointsLocator

All current template parameters could be directly deduced from the
PointsContainer template argument. It simplifies the usage of this class in a
general context.

The test has been modified in order to test with different PointsContainer
(itk::VectorContainer<> and itk::MapContainer<>), the 2 main containers used in
itk::PointSet<> and its derivative (itk::Mesh<> and itk::QuadEdgeMesh<>).

Change-Id: I7e9313250355196e6f7b2dbcbb8f796e06a543f0
COMP: Make GPUFunctorBase destructor virtual

The patch addresses the following warning:

ITK/Modules/Core/GPUCommon/include/itkGPUFunctorBase.h:43:3: warning:
'itk::Functor::GPUFunctorBase' has virtual functions but non-virtual
destructor [-Wnon-virtual-dtor]
  ~GPUFunctorBase() {

Change-Id: I55a2f002c036553f47bb8c468238f88e44e54147
COMP: GCC_XML external project does not use BUILD_EXAMPLES

The patch addressed the following warning when using using WrapITK and
building GCC_XML as an external project:

CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_EXAMPLES

Change-Id: Ia5af163f998c8fde72b5ca93d2d03d4b43878681
BUG: Scanline iterator in STAPLE filter not advanced to next line

An assert failed on debug build causing test failures. This detected
incorrect usage of the iterator where is was not being advanced to the
"NextLine" after each scanline.

Change-Id: I8e49ca9a37101f752fa68e05a1c865caf1ba6bd6
Merge topic 'FixWaringNonvirtualDestructor'

36c9d33 COMP: Make GPUFunctorBase destructor virtual
PERF: Use ImageScanlineIterator in ImageAlgorithm::Copy

Change-Id: I0c7ea3634916373072c16563ddfd7a4d29e13393
BUG: Return of NaN by DiffusionTensor3D::GetFractionalAnisotropy

As reported here:
https://itk.icts.uiowa.edu/jira/browse/ITK-3030

There are cases where the computed anisotropy
is NaN because of taking the square root of a
negative value.  This patch returns zero for FA
if it would be NaN.

This sensible solution was reviewed by several DWI processing
experts, and consider this approach to be a good couse of action.

It is suspected that the problem enters here

 anisotropy = 3.0 * isp - trace * trace;

when precision errors make the right side of the minus sign slightly larger
than the left. In this case the true anisotropy is going to be close to zero.

Change-Id: I2f9b47998f8dcefbca9ab27f315574617191ca6c
Merge topic 'SignedMaurer4D'

354f4fd BUG: SignedMaurerDistanceMap in 4D
Merge topic 'ImageScanlineIteartorForImageCopy'

96e6e2e PERF: Use ImageScanlineIterator in ImageAlgorithm::Copy
Merge topic 'FixSTAPLEIteratorNextLine'

c71df8b BUG: Scanline iterator in STAPLE filter not advanced to next line
PERF: Use iterators into name map for index inputs

This patch add an additional std::vector to the ProcessObject which
contains iterators into the names inputs map. This removes the need to
allocate a string, and perform a map look up, and replaces it with
constant time access to the DataObject inputs.

Change-Id: I0d62f874ea58a57bc3fe1c7639cd2c7e5195df88
COMP: Make the test stable by removing random source

Using a random source for an image regression test is poor
practice. Here we use a standard image as input.

Change-Id: I7193725f217b911ba00e8a001646802563977a15
Merge topic 'QuickViewTestRandomness'

b26ffe8 COMP: Make the test stable by removing random source
COMP: More baselines

Change-Id: I74f65c7278ab423a084251c5582f84d240f118ac
Merge topic 'QuickViewTestBaselines'

4fde970 COMP: More baselines
Merge topic 'PointsLocator'

2ea5b37 ENH: Simplify template parameters in itk::PointsLocator