ENH: DataFrame.plot.scatter argument `c` now accepts a column of strings, where rows with the same string are colored identically
- [x] Closes #16827 
- [x] Closes #16485
- [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).
- [x] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.
```py
import pandas as pd
import random as rand

df = pd.DataFrame({
    'dataX': [rand.randint(0, 100) for _ in range(100)],
    'dataY': [rand.randint(0, 100) for _ in range(100)],
    'fav_fruit': [rand.choice(['Apples', 'Bananas', 'Grapes', 'Peaches']) for _ in range(100)],
})
df.plot.scatter('dataX', 'dataY', c='fav_fruit')
```
![image](https://github.com/user-attachments/assets/98089baa-fd49-4189-97fd-8a6521086184)
 ```py
df = pd.DataFrame({
    'dataX': [rand.randint(0, 100) for _ in range(100)],
    'dataY': [rand.randint(0, 100) for _ in range(100)],
    'fav_fruit': [rand.choice(['Grapes', 'Bananas', 'Apple', 'Peaches']) for _ in range(100)],
})

df.plot.scatter('dataX', 'dataY', c='fav_fruit')
```
<img width="566" alt="image" src="https://github.com/user-attachments/assets/43fff578-0ab2-4250-a775-c29082cc0861">

```py
df = pd.DataFrame({
    'dataX': [rand.randint(0, 100) for _ in range(100)],
    'dataY': [rand.randint(0, 100) for _ in range(100)],
    'fav_fruit': [rand.choice(['Grapes', 'Bananas', 'Apple', 'Peaches']) for _ in range(100)],
})

df.plot.scatter('dataX', 'dataY', c='fav_fruit', cmap='rainbow')
```
<img width="573" alt="image" src="https://github.com/user-attachments/assets/0021007a-1d36-4147-ac4e-d2d6f70ee09e">
 Not sure if I need to add this as part of this PR, but there is some documentation (and maybe more) about using the `c` arg in `df.plot.scatter` found in: https://github.com/pandas-dev/pandas/blob/main/doc/source/user_guide/visualization.rst?plain=1#L636-L637

Should I update this to include this new feature? Thanks @michaelmannino - very impressive work! Thanks for all the efforts on the refactors / feedback