DOC: Corrected documentation for threshold boundaries.

Previously, the documentation for itkThresholdImageFilter was
incorrect for the ThresholdAbove, ThresholdBelow, and ThresholdBetween
options because they incorrectly stated the handling of pixels in the
image equal to the threshold value itself.  The previous comments
stated that pixels equal to the threshold value will be changed to the
outsideValue.  But according to the code, the true handling of pixels
equal to the threshold value is that they are not affected by the
threshold.  The documentation has now been corrected.

The corresponding test was enhanced to add explicit testing of the
threshold value, and the new tests pass, further indicating that the
new documentation is correct.  The test was also extended to handle
cases where the inputValue is not 0 for generality and to make the
code clearer.

Change-Id: I3fc7f36a532e7b64b03d9591e31057e7d1cc745d
COMP: Fix GCC warning about unused typedef in ConceptChecking

New in GCC 4.8 is a warning about when a local typedef is not
used. The most frequent offender of this incidental warning is the
concept checking used. This patch uses an approach suggested by Brad
King which uses the type as a template argument, to an instantiated
empty class.

Change-Id: Icc2c89e377639f829e0c1fbed4468c92eae813d5
BUG: Missing parentheses for logic comparison

Change-Id: I308c6a5e4d41b230715d68de6cfa766c719bb80a
warning: logical not is only applied to the left hand side of this comparison [-Wlogical-not-parentheses]
  if ( !TInputImage::ImageDimension == TOutputImage::ImageDimension )
       ^                            ~~
STYLE: Explicitly declare virtual (cont. of 1c8609)

This is an extension of previous work in
commit 0d61aa0798ee3f1c577e108b727a078005a641f7
commit 10757725be9cbe68ab2903c9cd4b76b738070e63
commit 1c86090118e0679ccac22a05c7e77a77fb0f6b83,
on May 6th, 2014.

The clang-modernize methods only work on code that is compiled, so cmake was
reconfigured to include other options (i.e. Review, ITKv3 compatibility, FFT, FFTWW)
to increase the convered code.

clang-modernize -p ITK-newclang/ -include ITK/Modules/ -exclude ITK/Modules/ThirdParty -add-override -override-macros
clang-modernize -p ITK-newclang/ -include ITK/Modules/ -exclude ITK/Modules/ThirdParty -use-nullptr

Change-Id: I348adc6829ac29ff31e5023e491fa82ff1aa4656
Merge topic 'FixUnUsedTypedefInConceptChecking'

8329f687 COMP: Fix GCC warning about unused typedef in ConceptChecking
Merge topic 'AddMoreOverride'

e00caf9c STYLE: Explicitly declare virtual (cont. of 1c8609)
Merge topic 'FixLogicWarning'

9305a01c BUG: Missing parentheses for logic comparison
Merge topic 'CorrectThresholdBoundaries'

e1e293d1 DOC: Corrected documentation for threshold boundaries.
WIP: Use cached memory for Jacobian temporaries.

Change-Id: Ia55e5d33a5a2684463bfad985e06e8288a48f89a
PERF: Re-use jacobian rather than instantiation

A temporary jacobian value was always created for
and resized at every iteration of the program call.

This was increadibly in-efficient during registrations
and was the #1 time consuming portion of the code for
many registration examples.

The new function:
ComputeJacobianWithRespectToParametersCachedTemporaries
was created to allow for improved performance.

Change-Id: Ic405b9d26c5fdf3660941372e9bb9814c2792143
PERF: Avoid unnecessary construction of vnl_matrix.

The simplistic math operators for matrix multiplication require
unnecessary construction of temporary matricies in order to
get the math operations completed.  By writing a custom matrix
multiply that includes a stride for the output, we can avoid
an unnecessary copy.

Change-Id: I4249b3e6e2b1efe687b05fac9cdaf568210a9d94