BUG: inconsistent concat casting EA vs non-EA
- [ ] closes #xxxx
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Because we dont have 2D EAs, we end up passing axis=0 to concat_compat from internals.concat.  As a result we drop empty arrays only when EAs are present.  This leads to dtypes being preserved in EA cases while being cast to object in non-EA cases.

One solution is just to support 2D EAs.  But since I like the dropping-empties behavior better anyway, this is good too.