BUG: GDCM Series does not write z-spacing.

When a GDCMImageIO is used with an ImageSeriesWriter, the z-spacing is not
written to the output image.  The ITK_Spacing metadata passed was not being
added to the output.  m_NumberOfDimensions is only 2 in this case.  If there
is a z-spacing that is set, it should be passed.

Change-Id: Ia8744c7d391e2e80e06b7843224f44a5398a55e5
ENH: Add ITK_FORBID_DOWNLOADS option. ITK-3239

Suggestion by Gert Wollny:

  When packaging the software, e.g. for Debian, one can not assume that the
  build machine is connected to the Internet. In order to make it easy to ensure
  that no downloads are required during the build, a CMake option should be added
  that forbids this and issues errors about missing third party tools/packages.
  This is also nice for people who download the software at a place with a
  reasonable Internet connection, but want to build it elsewhere/later.

A new advanced option, ITK_FORBID_DOWNLOADS is added.  If on, all
ExternalProject_Add calls will send a CMake error.  Also, skip the remote
URL's for ExternalData.

Change-Id: I7863bf87f1d6fd3f07939e3d580e3ae864076f22
ENH: Add setters for the overlay functor in labelmap overlay filters.

This will allow a user to draw label overlays or contours with a user-
supplied colormap, if required, while preserving existing behaviour
for those users happy with the defaults.

This also fixes a (previously unimportant) bug in comparison of
LabelOverlayFunctor and LabelToRGBFunctor classes, and fixes an
uninitialized m_Opacity member in LabelOverlayFunctor.

Also added unit tests for custom overlay and contour colormaps.

Change-Id: Ic5d783d8397abb0f652e8dd9a90c44f39d07a08c
Merge branch 'master' into gdcm-spacing-release2

Conflicts:
	Modules/IO/GDCM/test/CMakeLists.txt

Change-Id: I5182d1848faa9dc0b8bc48bab1556bb26af1e4dd
Merge topic 'gdcm-spacing-release2'

55b14edb Merge branch 'master' into gdcm-spacing-release2
f878fa7c BUG: GDCM Series does not write z-spacing.
COMP: Explicitly make constant an unsigned int

This patch addressed the following warning:
itkNoiseBaseImageFilter.h:74:5: warning: this decimal constant is
unsigned only in ISO C90 [enabled by default]

Change-Id: I9a3116a6d8587e34d8460d4d68a797f2f5c13dd9
Merge branch 'gdcm-spacing-release3' into release

Change-Id: I921407e67211743e4057c95bb4145b688e75dc38
BUG: Fix uninitialized ivar in NoiseBaseImageFilter

Change-Id: Ib384f723d6ed42d9552aa1b128cfd755e68da732
ENH: Make NoiseBaseImageFilter an abstract base class

This also improves coverage.

Change-Id: Iaddf9769de323cb70d6a67134467945a36ef4bbe
COMP: return will never be executed after exception thrown.

Change-Id: I1e6bbb7fb7780de546b7c5090f697ba55bda5b70
Merge topic 'AddIJNoiseSimulation2'

0f9bf018 BUG: Fix uninitialized ivar in NoiseBaseImageFilter
022db8ee COMP: Explicitly make constant an unsigned int
Merge topic 'forbid-download'

e5e0b3d2 ENH: Add ITK_FORBID_DOWNLOADS option. ITK-3239
Merge topic 'return-exception'

de48d07b COMP: return will never be executed after exception thrown.
COMP: workaround clang -Windent warnings by fixing indentation

No behaviour change, only whitespace changes.

Change-Id: I6090364bdfc71c6e0714832568f6b9b764aefbf6
Merge topic 'labelmap-overlay-functor'

8f4dcb5f ENH: Add setters for the overlay functor in labelmap overlay filters.
Merge topic 'Windent'

aed62a59 COMP: workaround clang -Windent warnings by fixing indentation
Merge topic 'AddIJNoiseSimulation2'

eb4ac2b9 ENH: Make NoiseBaseImageFilter an abstract base class
Merge branch 'release'

Change-Id: I646fb345596b8ede1b0c4615db89896203afb438
BUG: Invalid read during ImageIOBase SetDirection.

This bug was unveiled by a new test that writes a 3D images to a series of
2D DICOM files.  In this case, the ImagesSeriesWriter re-uses the 3D ImageIO
object on each of the 2D slices when writing with ImageFileWriter.

Change-Id: I592b6cd99d45854be24ddd1e074af4aa03a1ad33
Merge topic 'imagebase-invalid-read-release'

895c6fb8 BUG: Invalid read during ImageIOBase SetDirection.