ENH/CoW: use lazy copy in set_axis method
Copy-on-Write in `set_axis`
- [x] [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
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
This PR is part of an effort to implement the Copy-on-Write implementation mentioned in #49473. More detail in this proposal https://docs.google.com/document/d/1ZCQ9mx3LBMy-nhwRl33_jgcvWo9IWdEfxDNQ2thyTb0/edit / with discussions in https://github.com/pandas-dev/pandas/issues/36195

And you will also have to merge the main branch, to resolve the conflict from merging your other PR @Th3nn3ss small reminder in case you have time to update for the minor comments above sorry about the delay @jorisvandenbossche I was preoccupied with my research project. I have made some changes. Thanks for taking a look at my PR. Thx @Th3nn3ss 