Fix dll linking warnings for VS 2015/17 (#467)

-- #ifdef out duplicate definitions
-- remove make_nan() dead code
diff --git a/test_common/harness/compat.h b/test_common/harness/compat.h
index 660ed04..b0be6ab 100644
--- a/test_common/harness/compat.h
+++ b/test_common/harness/compat.h
@@ -151,83 +151,83 @@
         #define     isinf( _x)      ((_x) == INFINITY || (_x) == -INFINITY)
     #endif
         
-#if ! defined( __INTEL_COMPILER )
+    #if _MSC_VER < 1900 && ! defined( __INTEL_COMPILER )
 
-double rint( double x);
-float  rintf( float x);
-long double rintl( long double x);
+        double rint( double x);
+        float  rintf( float x);
+        long double rintl( long double x);
 
-float cbrtf( float );
-double cbrt( double );
+        float cbrtf( float );
+        double cbrt( double );
 
-int    ilogb( double x);
-int    ilogbf (float x);
-int    ilogbl(long double x);
+        int    ilogb( double x);
+        int    ilogbf (float x);
+        int    ilogbl(long double x);
 
-double fmax(double x, double y);
-double fmin(double x, double y);
-float  fmaxf( float x, float y );
-float  fminf(float x, float y);
+        double fmax(double x, double y);
+        double fmin(double x, double y);
+        float  fmaxf( float x, float y );
+        float  fminf(float x, float y);
 
-double      log2(double x);
-long double log2l(long double x);
+        double      log2(double x);
+        long double log2l(long double x);
 
-double      exp2(double x);
-long double exp2l(long double x);
+        double      exp2(double x);
+        long double exp2l(long double x);
 
-double      fdim(double x, double y);
-float       fdimf(float x, float y);
-long double fdiml(long double x, long double y);
+        double      fdim(double x, double y);
+        float       fdimf(float x, float y);
+        long double fdiml(long double x, long double y);
 
-double      remquo( double x, double y, int *quo);
-float       remquof( float x, float y, int *quo);
-long double remquol( long double x, long double y, int *quo);
+        double      remquo( double x, double y, int *quo);
+        float       remquof( float x, float y, int *quo);
+        long double remquol( long double x, long double y, int *quo);
 
-long double scalblnl(long double x, long n);
+        long double scalblnl(long double x, long n);
 
-float hypotf(float x, float y);
-long double hypotl(long double x, long double y) ;
-double lgamma(double x);
-float  lgammaf(float x);
+        float hypotf(float x, float y);
+        long double hypotl(long double x, long double y) ;
+        double lgamma(double x);
+        float  lgammaf(float x);
 
-double trunc(double x);
-float  truncf(float x);
+        double trunc(double x);
+        float  truncf(float x);
 
-double log1p(double x);
-float  log1pf(float x);
-long double log1pl(long double x);
+        double log1p(double x);
+        float  log1pf(float x);
+        long double log1pl(long double x);
 
-double copysign(double x, double y);
-float  copysignf(float x, float y);
-long double copysignl(long double x, long double y);
+        double copysign(double x, double y);
+        float  copysignf(float x, float y);
+        long double copysignl(long double x, long double y);
 
-long lround(double x);
-long lroundf(float x);
-//long lroundl(long double x)
+        long lround(double x);
+        long lroundf(float x);
+        //long lroundl(long double x)
 
-double round(double x);
-float  roundf(float x);
-long double roundl(long double x);
+        double round(double x);
+        float  roundf(float x);
+        long double roundl(long double x);
 
         int cf_signbit(double x);
         int cf_signbitf(float x);
 
-// Added in _MSC_VER == 1800 (Visual Studio 2013)
-#if _MSC_VER < 1800
-        static int signbit(double x) { return  cf_signbit(x); }
-#endif
+        // Added in _MSC_VER == 1800 (Visual Studio 2013)
+        #if _MSC_VER < 1800
+                static int signbit(double x) { return  cf_signbit(x); }
+        #endif
         static int signbitf(float x) { return cf_signbitf(x); }
 
-long int lrint (double flt);
-long int lrintf (float flt);
+        long int lrint (double flt);
+        long int lrintf (float flt);
 
-float   int2float (int32_t ix);
-int32_t float2int (float   fx);
+        float   int2float (int32_t ix);
+        int32_t float2int (float   fx);
 
-    #endif
+    #endif // _MSC_VER < 1900 && ! defined( __INTEL_COMPILER )
 
-    #if ! defined( __INTEL_COMPILER ) || __INTEL_COMPILER < 1300
-        // These functions appeared in Intel C v13.
+    #if _MSC_VER < 1900 && ( ! defined( __INTEL_COMPILER ) || __INTEL_COMPILER < 1300 )
+        // These functions appeared in Intel C v13 and Visual Studio 2015
         float  nanf( const char* str);
         double nan( const char* str);
         long double nanl( const char* str);
diff --git a/test_common/harness/msvc9.c b/test_common/harness/msvc9.c
index ca0e45a..1c0cf2b 100644
--- a/test_common/harness/msvc9.c
+++ b/test_common/harness/msvc9.c
@@ -24,7 +24,7 @@
 
 #include <windows.h>
 
-#if ! defined( __INTEL_COMPILER )
+#if _MSC_VER < 1900 && ! defined( __INTEL_COMPILER )
 
 ///////////////////////////////////////////////////////////////////
 //
@@ -276,6 +276,8 @@
 }
 #endif
 
+#if _MSC_VER < 1900
+
 /* fmax(x, y) returns the larger (more positive) of x and y.
    NaNs are treated as missing values: if one argument is NaN,
    the other argument is returned. If both arguments are NaN,
@@ -560,6 +562,7 @@
     return (long int) x;
 }
 
+#endif // _MSC_VER < 1900
 
 ///////////////////////////////////////////////////////////////////
 //
@@ -589,20 +592,7 @@
 
 #endif // __INTEL_COMPILER
 
-#if ! defined( __INTEL_COMPILER ) || __INTEL_COMPILER < 1300
-
-float make_nan()
-{
-/* This is the IEEE 754 single-precision format:
-    unsigned int mantissa:  22;
-    unsigned int quiet_nan:  1;
-    unsigned int exponent:   8;
-    unsigned int negative:   1;
-*/
-     //const static unsigned
-     static const int32_t _nan = 0x7fc00000;
-     return *(const float*)(&_nan);
-}
+#if _MSC_VER < 1900 && ( ! defined( __INTEL_COMPILER ) || __INTEL_COMPILER < 1300 )
 
 float nanf( const char* str)
 {