Updated value_counts documentation and implementation and added single label subset test
- [ ] closes #50829
- [x] Tests added and passed.
- [x] All code checks passed.


@mroeschke  this was a first attempt. Should the definition of subset be worded like [by in groupby](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html) or linked to it? And I went with the most straight forward implementation and test if either needs to be more thorough please lmk The doc change looks good. Appears the test you added is failing. Not sure why the following in Code Checks / Docstring validation, typing, and other manual pre-commit hooks (pull_request) is failing:

```
 Error: /home/runner/work/pandas/pandas/pandas/core/indexes/base.py:285:EX02:pandas.Index:Examples do not pass tests:
**********************************************************************
Line 49, in pandas.Index
Failed example:
    pd.Index([1, 2, 3], dtype="uint8")
Expected:
    NumericIndex([1, 2, 3], dtype='uint8')
Got:
    Index([1, 2, 3], dtype='uint8')

Partially validate docstrings (EX02) DONE
Error: Process completed with exit code 1.
```

Is this a conflict with a change that has been merged into the main branch since I have opened the pull request? Looks like this may have been fixed, can you merge main & resolve conflicts to check. @tpackard1 - failures look network related; likely a hiccup. Can you try merging main again. Thanks @tpackard1 - I'm now seeing the failed test:

> pandas/tests/frame/methods/test_value_counts.py::test_data_frame_value_counts_subset Hopefully everything should be good now. @rhshadrach should I go ahead and update the docs (and possibly the whatsnew?) that @mroeschke mentioned about the return difference or would it be best to open a separate PR for that? @tpackard1 - yes, updating the docs here would be good. I think a line in the whatsnew about not returning a MultiIndex for a single label would be good. Thanks @tpackard1!