BUG/TST: fixed so various methods call `__finalize__`, issue #28283
### Progress towards #28283

After this PD, the following methods should propagate metadata using `__finalize__`:
- `DataFrame.combine, DataFrame.combine_first`
- `DataFrame.explode`
- `DataFrame.isin`
- `DataFrame.merge`
- `DataFrame.melt`
- `DataFrame.mode`
- `DataFrame.quantile`

<br/>

- [ ] closes #xxxx
- [x] tests added / passed
- [ ] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them
- [ ] whatsnew entry

Contributors:
- [Casper Lundberg](https://github.com/casperlundberg)
- [Rickard Bemm](https://github.com/Rickos99)
- [Simon Lundberg](https://github.com/SimonHotDog)

prob best to do these in smaller chunks prefer that you do this in smaller chunks.