PERF: 15% speed improvement for registration

The speed improvement is mainly gained by avoiding smartpointer de-reference in a loop.
        After   Before
        18.72   23.63
        18.95   18.9
        19.75   23.65
        18.66   19.13
        17.49   24.93
Average 18.71   22.04  15% speed improvement
Stddev  0.810    2.81

Using small regression test from ANTs package as reference.

This patch also prefers initialization of accumulators
prior to loop running and to simplify conditionals
on the loops.

Change-Id: Ie4c5dbbfb8c2cf2835454661ccf41d4950f9c80a
PERF: Simplify conditionals in loop

This is to simplifying by removing unnecessary conditionals
to provides additional optimization opportunties.  The conditionals do not
change the values, but they do attempt to reduce the amount of computation
that needs to be done.  In reducing the amount of computation, it also
increases the complexity of the code and introduces alternate code paths
that make optimization more difficult.

        187.2   175.58
        189.42  177.67
        188.91  178.78
        190.58  183.05
        191.37  191.53
Average 189.496 181.322 4.508%
Stddev    1.605   6.323

Change-Id: I92e98ba8b44b8891c1f3277565d6d51e3b7806a3
ENH: Disable tip to enable Uncrustify from SetupForDevelopment

Uncrustify use in ITK is not yet mature, and enabling its hooks will
cause developers to get pre-commit errors from any preexisting issues
in a file. This can be very confusing to new developers who may not
realize that they are not responsible for fixing these issues or
who may not understand how to disable Uncrustify pre-commit checking
again.

Enabling Uncrustify pre-commit hooks should not be suggested as a "tip"
to all users during the standard SetupForDevelopment process. ITK
developers who want Uncrustify support can still enable it manually.

When Uncrustify support is more mature, the tip can be re-enabled.

Thanks to Julien Michel for helping to track down this issue.

Change-Id: I2168d99eadc7ece4f94e7b9099ff12dd7073cccd
BUG: Put ImageIOBase helper function in anonymous namespace

The WriteBuffer templated helper function in this file is already in an
anonymous namespace, ReadBuffer should be too.

Change-Id: Iac2f5c944209c4433e61a928350f67691ca52c1a
COMP: Disable -Warray-bounds for GCC 4.7, 4.8.

-Warray-bounds causes a number of false positives with -O3 that are cluttering up the
dashboard.

Change-Id: Ibaa23046c60ad5ffc2945b869005072292338d00
BUG: Make RealTimeClock on Windows report consistent time.

The itkRealTimeClock in Windows tries to convert Windows-time stamps since
1601 to unix time since 1970. It actually does not subtract the time
difference, but adds it again, so that the time is given since 1232.

Change-Id: I6c15259362c8fb8e7516f20e9d49384d0da6d8c7
Suggested-by: Peter Fischer.
ENH: Mark ImageRegistrationHistogramPlotterTest as RUNS_LONG.

11.1 seconds on a modern machine.

Change-Id: Icc9e87cf6f52b5560c2a3b9d507dd6544f124331
Merge topic 'gcc-array-bounds'

a06c378 COMP: Disable -Warray-bounds for GCC 4.7, 4.8.
BUG: Fix rounding issue with HistogramPlotter test

This patch addresses the following failing test:
http://open.cdash.org/testDetails.php?test=222652964&build=3137224

Change-Id: Id023b2dfa32e0698b06ab4413e78f8826d19fd38
COMP: Remove unused method to manage warning

This patch addressed the following warning

ImageRegistrationHistogramPlotter.cxx(242): warning #177: function
"<unnamed>::HistogramWriter::GetMetric" was declared but never
referenced
    MetricPointer GetMetric() const

Change-Id: Id2e5c4f309751d3ad65adf852f512c3d0b00dd0b
Merge topic 'FixHistogramPlotterTest'

15c7f90 BUG: Fix rounding issue with HistogramPlotter test
Merge topic 'FixUnusedGetMetricPlotter'

4be315d COMP: Remove unused method to manage warning
Merge topic 'ImageIOBase-Namespce'

4a416c2 BUG: Put ImageIOBase helper function in anonymous namespace
Merge topic 'Windows-Clock'

273c1cb BUG: Make RealTimeClock on Windows report consistent time.
STYLE: Rename TValueType template parameters to TValue

This is consistent with template naming conventions.

Change-Id: Ifed106f661a2120a4a579b5620beb2ecc770e5a4
DOC: ITK Software Guide Reference Label Fix

This registration example was incerrectly referencing the whole
section on deformable registration instead of the preceeding
example. These two examples had identical labels in the ITK
Software Guide chapter on registration.

Change-Id: I8603229728651d966660a5c348f8f142de1a150e
COMP: Prevent compile-time numeric warnings in Float Exception test

Place constants in external file to prevent compiler from detecting
compile-time numeric error.

Added optional ADDITIONAL_SRC argument for CreateTestDriver macro to
add src that does not contain an expected test.

Change-Id: I65a71250d2c099a0d86644e4f89973e84f261dc0
Merge topic 'FloatingPointExceptionUseExtern'

e0d1a91 COMP: Prevent compile-time numeric warnings in Float Exception test
Merge topic 'SoftwareGuideMultipleLabelLaTeXWarningFix'

4a67ec2 DOC: ITK Software Guide Reference Label Fix
Merge topic 'HistogramWriter-visibility'

eeb5338 ENH: Mark ImageRegistrationHistogramPlotterTest as RUNS_LONG.