Add NumCast trait for generic numeric type casts