changed nan() and String2Float() to template functions - not regular functions returning double; used that to fix VariantValue() to use long-double internally for its call to String2Flaot() - fixing roundtrip bug on platforms where long double differs from double (like g++)