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
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
ENH: index can be associated with required input

Current ITK filters have indexed input without names. To migrate these
classes to have named inputs, names need to be associated with the
current index to maintains compatibility.

The addition of an optional argument to ProcessObject's
AddRquiredInputName method is used to connect the two different
indexing types for the filter's input.

The SetPrimaryInputName method was re-factored to only call existing
methods and not directly manipulate the internal structures.

Change-Id: Iaa20c88eff270f95ada0ea52fba69ebf366a5f45
PERF: Add global variable of index names in ProcessObject

Many calls to ProcessObject's Inputs/Outputs methods need to construct
a string with the named index. This patch converts from the procedural
approach to used a constant global variable for the first 100 names
indexed inputs.

Change-Id: I0daa7afe431b1254e07ae1e0542325b5bd33699d
ENH: Remove unused wrapping code. ITK-3032.

The ExternalProjects/{ItkVtkGlue,PyBuffer} is left over from the
WrapITK project integration and is not used.  It is removed in this commit.

The ItkVtkGlue code has been migrated to the wrapping directory in the ITKVtkGlue module
and the PyBuffer is available as an External module here:

  https://github.com/tobiasmaier/itkPyBuffer

Change-Id: I0b0452667157c5c1d8f9c5892a45fe60f8320db2
Merge topic 'gdcm-tag'

9935aba ENH: Allow Get*FromTag to accept uppercase hex
Merge topic 'NamedInputsCompatibility'

b6ff674 ENH: index can be associated with required input
488d9ed PERF: Use iterators into name map for index inputs
Merge topic 'GlobalForNamesIndexedInputs'

8bcd6e9 PERF: Add global variable of index names in ProcessObject
COMP: fix unused result warning in ProcessObject

This patch fixes the following warning:

ITK/Modules/Core/Common/src/itkProcessObject.cxx:797:67: warning:
expression result unused [-Wunused-value]
  m_Inputs.insert( DataObjectPointerMap::value_type(name, NULL) ).first;

Change-Id: Idc5d4c9368a02b52ef5bf5ad0071ead00b2504c4
ENH: Remove names inputs specialized comparison

With the addition of constant time access to the PrimaryInputs, this
former optimization to make the PrimaryInput the first element in the
map is no longer beneficial. Additionally, with the feature of setting
the name of the primary input, it may not always be beneficial. Also,
for the filters with just one input or output, this offered no
benefit.

Change-Id: I71ee3ce035e3ce9e933153a0ab0f8715c08aec78
DOC: Updated input methods doxygen

Reordered protected methods in ProcessObject header into 3 groups,
Input, Output, and Pipeline methods.

Change-Id: I220f26086a3a065e1f235a060987931fde825b78
ENH: Use named inputs in BinaryReconstruction filters.

The named input ProcessObject functionality is put to use for the MarkerImage
and MaskImage in a backwards compatible way.

Change-Id: I06afdea17381b49abcc4d8be1183e42cae866558
PERF: Use ImageAlgorithm::Copy in JoinSeries filter

Change-Id: I012177638fe023c4a73ae590f6ba92cb18ad9f0e
Merge topic 'FixProcessObjectUnusedResultWarning'

643dd16 COMP: fix unused result warning in ProcessObject
COMP: Another baseline

For Ubuntu

Change-Id: I1910ebe91fb2b2930b979d29f1c0b400589039af
Merge topic 'UnusedWrapping'

c12ee17 ENH: Remove unused wrapping code. ITK-3032.
Merge topic 'QuickViewTestBaselines_1'

7abe33a COMP: Another baseline
COMP: Distance maps filters cannot wrap 1D.

itkContourDirectedMeanDistanceImageFilter, itkContourMeanDistanceImageFilter
itkDirectedHausdorffDistanceImageFilter, and itkHausdorffDistanceImageFilter
cannot wrap 1D because of eventual issues in BinaryContourImageFilter.
Use the same wrapping types as its component filter, SignedMaurerDistanceMapImageFilter.

Change-Id: I85aecc8aec084f96c085eb123fda385b55754388