CLN: Use ABC classes where possible
- [x] closes #27353
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Looks like the linter doesn't like the import order.  can you run `isort pandas/core/reshape/concat.py` This will need to be profiled carefully given @jorisvandenbossche's comments in https://github.com/pandas-dev/pandas/issues/27353#issuecomment-541301711. lgtm can you merge master and try again? I think should resolve CI Rebased, we'll see how this goes. @jreback When comparing 2ce2f4ff and 9f038370 there is no significant difference on the reshaping benchmark.

[reshaping-results.zip](https://github.com/pandas-dev/pandas/files/3748813/reshaping-results.zip) @Kazz47 do you have bash output available you can post instead? Would be easier to review @Kazz47 can you merge master and fix conflict? Also for asv run output just post the output from your terminal Nice PR but needs rebase and I think has gone stale. Ping if you'd like to pick this back up