PERF: Avoid Series constructor in DataFrame(dict(...), columns=)
- [ ] closes #24368 (Replace xxxx with the GitHub issue number)
- [ ] closed #25887
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.


```python
import pandas as pd, numpy as np
a = pd.Series(np.array([1, 2, 3]))
columns = range(10_000)
data = {i: a for i in columns}
%timeit pd.DataFrame(data, columns=columns)

51.3 ms ± 96 µs per loop (mean ± std. dev. of 7 runs, 10 loops each) # PR
102 ms ± 1.8 ms per loop (mean ± std. dev. of 7 runs, 10 loops each) # main
```

```python
In [1]: import pandas as pd

In [2]: %timeit pd.DataFrame([], columns=['a'])
37.3 µs ± 231 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)  # PR
183 µs ± 584 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)  # main
```
When you have a chance, could you take a look @jbrockmendel  will take a look.  i like the idea of getting Series out of here LGTM