PERF: Improve perf initalizing DataFrame with a range
Performance improvement when initalizing a DataFrame with a range:

```python
>>> %timeit pd.DataFrame(range(1_000_000)) 
347 ms ± 4.46 ms per loop  # master
5.98 ms ± 61.9 µs per loop  # this PR
# other initialization types don't seem to be affected by this problem:
>>> %timeit pd.Series(range(1_000_000))
5.75 ms ± 27.6 µs per loop  # master and this PR
>>> %t pd.DataFrame({"a": range(1_000_000)})
11.2 ms ± 119 µs per loop  # master and this PR
```
