BUG: Fix merging non-indexes causes Index dtype promotion in when keys are missing
... from left or right side. (GH28220)
Also closes GH24897, GH24212, and GH17257

- [x] closes #28220, #24897, #24212, and #17257
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Probably requires a bit more cleanup and reduction of spaghetti... Not in love with the the solution (as it's quite similar to using both indexes) and requires extension test case changes, but hoping to get some comments and feedback on making it better.

Looks like a MultiIndex is getting mixed up with a RangeIndex. Did this pass locally? I ran the merging unit tests in test_merge. I'll spend some time to fix the others Hello @dworvos! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:







There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2019-11-09 03:05:47 UTC can you merge master and will have a look I've rebased with upstream/master. Thanks! Just checking in to see if I did what you asked of correctly.

Cheers @dworvos needs another rebase @dworvos i think we'd take this, but needs some work if you want to continue, pls ping Sure, I can take a look, but I'd like some feedback on what needs to be done rather than just constantly rebasing and getting nowhere?