COMP: Unused Clone and CreateAnother warnings

The intel compiler recognizes that the Clone and CreateAnother can never
be used in this isolated compilation unit.  The itkSimpleNew
provides only what is needed.

Change-Id: I83cb0c29e938488bbea7a37c85bb5ac80d298309
BUG: ImageToImageFilter different Input2 pixel type does not stream. #3214

If the second input image to an ImageToImageFilter has a different pixel type
than the first input image, then GenerateInputInformation does not copy
information correctly, and the filter will not stream.  This is attributed to
a bug in the dynamic_cast to Image< PixelType, Dimension > * instead of ImageBase<
Dimension > *.

A test is created that verifies correct behavior.

Suggested-by: Charles Peyrega <charles.peyrega@gmail.com>

Change-Id: I52f4add1b13d0f2d2eadce92e5e9743d812ef6f2
Merge topic 'GenerateInputRequestRegion-ImageBase'

300090e BUG: ImageToImageFilter different Input2 pixel type does not stream. #3214
BUG: Bug fixed in remote MGHImageIO repo, update git tag

This version also disallows the bare .gz extension for MGH
Image files.  The rationale for this is that it collides
dangerously with the NIfTI reader, specifically and
compressed files in general.  This means that MGHImageIO
will reject files it formerly accepted, but this is OK for
the following reasons:

1. It is unlikely that users regularly encounter MGH files with
just the '.gz' extension.

2. The primary producer and consumer of these files,
FreeSurfer, always uses by default one of the less ambiguous
file extensions.

3. If the user regularly encounters such files, they have
choices: they can use SetImageIO to force using the MGH
reader, or they can rename the files to a less ambiguous
file extension.

4. Allowing the option of '.gz' requires sufficient knowledge
of the user/developer to select that option, that one can
fairly assume the user/developer is knowledgeable enough to
cope with any issues arising from that option being
unavailable.

Change-Id: I59d792f4b1efa45a7bf86368d3f841cc9de96ef3
Merge topic 'FixMGHImageIOCanReadFile'

fb5eba8 BUG: Bug fixed in remote MGHImageIO repo, update git tag
Merge topic 'RemoveFalseSharingPatch1'

fb01c31 COMP: Unused Clone and CreateAnother warnings
BUG: argument check in LBFGSB too restrictive

This is in response to
https://issues.itk.org/jira/browse/ITK-3014

The authors of the algorithm and the fortran
code that ITK uses specify in thir example driver
that one of CostFunctionConvergenceFactor
and ProjectedGradientTolerance can be zero
but not both.

Change-Id: Ia5b1afd15f97e1c50cd5f46b543a174e1a25691a
Merge topic 'LBFGSBCostFunctionParameter'

d9b623d BUG: argument check in LBFGSB too restrictive
COMP: Const char * ternary operators

The following warning:
warning #3179: deprecated conversion of string literal to char* (should be const char*)

is issued when the first return item of a ternary operator is a "char *" and the
second return item is a  "const char *" because the effective temporary variable
will have the same type as the first element.

Change-Id: Ib065f114cae03752a90d119e864d76b44a751391
BUG: Derived test class missing required logic

The required logic for all dereived threaded metric classes
is that they must check if the derivative is requested before
atttempting to compute them.  During the refactoring for fixing
false sharing of variables, it is now possible that these
temporary variables do not exists and therefore can not be computed.

Change-Id: I0263cddecc69af22aeae66b05864ec8d6b88b70e
Merge topic 'RemoveFalseSharing'

e63ead9 BUG: Derived test class missing required logic
2f23cf2 COMP: Const char * ternary operators