ENH: Add support for DataFrame(ExtensionArray)
- [x] closes #11363
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Problem:
In core.frame
```
        elif isinstance(data, abc.Iterable) and not isinstance(data, (str, bytes)):
            if not isinstance(data, (abc.Sequence)):
                data = list(data)
```
Categorical Object cast as list. So In core.construction it is not identified as Categorical. 

Thanks, @proost 