ENH: allow non-consolidation in constructors
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

cc @TomAugspurger I think something like this is what is needed for #34872.

If this were a "real" PR, I'd probably not put `consolidate` as a `DataFrame.__init__` kwarg but instead set it to `True` and only change it to `False` based on the `copy` kwarg.

The usage in core.ops is not necessary, but is an example of where we can get a perf bump.