BUG: min_scalar_type_num: special float values can be represented in half

E.g. pandas sometime uses float('NaN') which would otherwise convert to
float64 where not required. The new np.where which uses
PyArray_ResultType is a case where the conversion is unnecessary.