BUG: fix issue with concat creating SparseFrame if not all series are sparse.
Ok so after trying a few things out. This seems to be the problem.

When concatting multiple data frames together if any of the containing series are sparse then the entire data frame becomes sparse (or SparseDataFrame). 

This is in fact not what we want. We want a DataFrame that contains a SparseSeries and a Series.

closes #18914, 
closes #18686 
closes #16874
closes #18551
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

  