API / CoW: DataFrame(<dict of Series>, copy=False) constructor now gives lazy copy
xref https://github.com/pandas-dev/pandas/issues/48998 (bullet point about constructors)

When constructing a DataFrame from Series objects, and when specifying `copy=False` with CoW enabled, we need to follow the lazy copy with CoW approach to ensure proper copy/view behaviour with the original Series objects.

We _could_ in theory change the default of `copy=True` (when data passed to the constructor is a dict) to `copy=False` when CoW is enabled, and this would retain the behaviour as-if the resulting DataFrame is a copy. But, I assume that the major reason for this default is to ensure the resulting DataFrame is consolidated and not consisting of all 1-column blocks. So for that reason I left the default as is for now.

- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

@phofl this should be ready now

(the current CI failures are unrelated; the arm one also fails on main) This is a bit annoying, simply checking for new_values is old_values is not sufficient (same problem I am having in astype).

```
val = Series([1, 2, 3])
df = pd.DataFrame({"a": val}, dtype="Int64", index=[0, 1, 2])

x = get_array(df, "a")
df.iloc[0, 0] = 100
```

The is comparison is False in this case but the data aren't actually copied, hence val and df is updated with the last statement. I guess we have to create a helper function for astype doing a more sophisticated check...

Edit: Can you add this as a test case as well? Added an xfailed test case for constructing with dtype="Int64", assuming that https://github.com/pandas-dev/pandas/pull/50802 will fix this.