fix: `array_distinct` inner nullability causing type mismatch (#18104)
## Which issue does this PR close?
- Closes #17416.
## Rationale for this change
`array_distinct`'s inner return type is always `nullable`,
however `general_array_distinct` maintain input nullability,
causing type mismatch error.
I believe the same error happens for `array_union` and `array_intersect`
(in `set_ops.rs`).
I can include the fix for those in this PR or maybe another separated
PR.
## What changes are included in this PR?
- Match return type nullability for `array_distinct`.
## Are these changes tested?
Yes.
I tried to add unit tests checking return types (similar to #15901),
but it wasn't clear to me whether the added tests could verify
the issue #17416. So I switched to the integration test.
- Added test for `List` with inner `nullability = true / false`.
- I did not added tests for `LargeList`, I don't think it needed
because the code path for the return type is identical to `List`.
## Are there any user-facing changes?
I don't think so.