BUG: crosstab with margins=True and dropna=False 
- [+] closes #12642 
- [+] tests added / passed
- [+] passes `git diff upstream/master | flake8 --diff`
- [+] whatsnew entry

> Powered by [Codecov](https://codecov.io). Updated on successful CI builds.
 I'll wait for #12327 
 make sure you rebase on master (to pick up the merges from the other issue). 

you can submit a separate PR that does #12327 if you want (just incorporate those commits) and fixup as I have suggested.
 - Rebased.
- #12327 already solved the problem.
- The test file I generated may be useful
- But I don't know how to include commits from #12327 .  I assume I can't just copy his final codes. I tried forking from him but it didn't work like that.
 ideally you would clone his branch
then cherry pick commits you want onto yours
