ENH: adding saving and reading of dataframe `attrs` field in parquet metadata
I implemented the saving and reading of the custom `attrs` field of a dataframe inside parquet files. This is done using a field called `"pandas_attrs"` inside the parquet metadata, even though this passage is hidden to the user, who can just keep on using `to_parquet` and `pandas.read_parquet` as before.
I hope it might be interesting to someone to use, since it allows to retain information which otherwise would need custom setup or be lost.

I left some 'TODOs', even though may not be strictly necessary.

The modifications allow for this paradigm to be implemented for both engines, i.e. `pyarrow` and `fastparquet`, with their own caveats. 

I wrote a simple pytest, which I locally managed to pass. I am not 100% sure it is the correct way, even though I follow the [guidelines](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests).

I shall leave some default checklist, but I am not sure it is needed.
- [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
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
Hello @LeonardoAlchieri! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:







There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2022-04-21 14:11:41 UTC This pull request is stale because it has been open for thirty days with no activity. Please [update](https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request) and respond to this comment if you're still interested in working on this.