Fixed #23924 -- Made EmailMessage raise TypeError for type checks

This change avoids silently producing broken `To`, `Cc` and `Bcc` headers when passed a string instead of a list of strings.
I know it's a bit of a stretch, but what if someone is passing a generator? There's nothing stopping us from accepting it, except for the explicit check for `list` or `tuple`.
`self.to = list(to)` will fail anyway with non-iterables.