ENH: Adding function to easily generate dummy dataframes in a controlled manner.
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

#### What's new
`generate_fake_dataframe` aims to facilitate the creation of dummy DataFrames with a specific configuration and datatypes. 
Current solutions like `makeDataFrame` or `makeMixedDataFrame` are not versatile enough and I think there is a need for something better. 

The idea is that with a short function call like `pd.generate_fake_dataframe(1000, "iiifccd")` you can generate a DataFrame with 1000 rows and, for example, 4 columns of integers, 1 of floats, 2 categorical columns and 1 with dates  in that specific order. Other params like `seed` to control randomization, or `intervals` to control the values among which data is sampled let us easily generate a DataFrame that is suited to our needs.

#### Checklist:
* I have followed the documentation as thoroughly as I could and added a long docstring with description, parameters, examples , etc.
* I have added a couple of tests.

#### Some concerns
* I put the function inside a new file called `generate_fake_dataframe.py` in `pandas/core/` as I was unsure about where was the right place to put it.
* I am quite unsure about the suitability of the name of the function and/or its parameters.
* I have run linting tests, but could not run the other ones since the environment setup via docker defined [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_environment.html#creating-an-environment-using-docker) is not working for me. However, since I am not touching anything already written and I am only adding stuff nothing should break. My own tests are passing of course. 

That's it. I hope moderators find this function useful and after the necessary changes can be somehow included in the library.