COMP: Fix ambiguous specialization of GDCM Element

To disable certain combinations of template arguments to GDCM's
Element class, ambiguous declarations where added with no
definition. These combintations are causing compilations warnings such
as:

gdcmElement.h(611): warning #889: this partial specialization would
have made the instantiation of class "gdcm::Element<4096, 218367>"
ambiguous
  template <int TVM> class Element<VR::OB, TVM>;

While simply removing ambiguous declarations, would remove the
warnings this would not preserve the authors original intent to
prevent instantiation. To achieve a additional class was added with a
concept like check, to prevent instantiation.

Change-Id: I01c7d3f663a2e97804a465fb460d964542c6bf2d
ENH: Adding a separate template parameter to handle transform precision

For now there is a confusion between interpolation precision and transform precision : the TInterpolatorPrecision template parameter is used as a template parameter for the transform as well.

It is therefore impossible to specify different type of precision for coordinate transforms and pixel value interpolation. This is hidden by the default template parameter, but may cause some trouble to use the ResampleImageFilter with exotic pixel types or interpolation, where the TInterpolatorPrecision is not a floating point scalar type.

The proposed patch adds a 4th template parameter called TTransformPrecision and use it to set-up the transform. It is set to double by default (as is the TInterpolatorPrecision paramater), so the patch is backward compatible with any code using the unpatched version (with 3 template parameters).

Change-Id: If5c39f19b6a287a3752f91063976f788951e0fd3
Merge topic 'fix-resamplefilter-precisions'

6ce2fc1 ENH: Adding a separate template parameter to handle transform precision
Merge topic 'FixGDCMAmbiguousSpecialization'

a54fad0 COMP: Fix ambiguous specialization of GDCM Element