[preconditioner] fix ILDL for SIMD types
the weight is a scalar, but the current code defines it a field_type, which might be a SIMD type or something else, which does not behave as a scalar. We fix this by using the SimdScalar traits to extract the scalar type and use this.