Update join docs for other param
Currently the `DataFrame.join` docs imply that the type of `other` is `DataFrame | Series | list[DataFrame]`, but this is not correct, and `list[Series | DataFrame]` is a more appropriate type. 

The type signature and also the method description have been updated to amend this.

- [ ] closes #xxxx (Replace xxxx with the Github issue number)
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

No idea why this is failing 🤷 This pull request is stale because it has been open for thirty days with no activity. Please [update](https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request) and respond to this comment if you're still interested in working on this. @multimeric - are you interested in continuing this? Hmm, I'm a bit stuck. I can't work out how to get mypy to understand it's working with a list of `Series | DataFrame`. `pandas/core/frame.py:9586: error: Argument 1 to "list" has incompatible type "Union[DataFrame, Series, Iterable[Union[DataFrame, Series]]]"; expected "Iterable[DataFrame]"  [arg-type]` It's not clear to me what type signature is causing this to fail. Even if I type cast it I'm still getting the same error. I think the line should be:

    frames = [cast("DataFrame | Series", self)] + list(cast("Iterable[DataFrame | Series]", other))

 - You need quotes because otherwise the Python tries to actually use the `|` operator. In other words, the first argument of `cast` needs to be a valid Python object.
 - You need to cast `[self]` as well; mypy will object to combining lists of different types. Thanks, that fixed it. Indeed I didn't try casting both parts of the concatenation, partly because I would have thought mypy could have narrowed the type of `self` at that point to `other` to `Iterable` because of the if statements. Ah well! @multimeric can you merge master into your branch, seems like the problem in the CI is unrelated. I actually did that just before. It looks like the current failure is just a timeout? Happy to pull again though. No, there is indeed a failure here. But it seems unrelated entirely. This pull request is stale because it has been open for thirty days with no activity. Please [update](https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request) and respond to this comment if you're still interested in working on this. @multimeric do you have time to add the requested comment? And ir'd also be good if you can merge master into your branch

@rhshadrach I think  your comments were addressed, can you check if this is ready from your side? Thanks @multimeric for your persistence and all for the review!