CLN: Add typing for dtype argument in codebase
Follow up from #37546 and #38680 

Add typing for the `dtype` argument throughout the pandas codebase. Part of the code might need an update after adding the type since the mypy type checks can fail.

 In #38680 it is already done for `io/sql.py`, from a directory search I found that the list of files below still have untyped dtype arguments. 

Would be great if people can work on a few files at a time in separate PRs and mention this issue. I will already start with the remaining files in the io directory

- [x] io/parsers.py
- [x] io/excel/_base.py
- [x] io/json/_json.py
- [x] io/pytables.py
- [x] core/arrays/datetimelike.py
- [x] core/arrays/base.py
- [x] core/arrays/boolean.py
- [x] core/arrays/categorical.py
- [x] core/arrays/integer.py
- [x] core/arrays/interval.py
- [x] core/arrays/masked.py
- [x] core/arrays/numpy_.py
- [x] core/arrays/period.py
- [x] core/arrays/sparse/array.py
- [x] core/arrays/string_.py
- [x] core/arrays/string_arrow.py
- [x] core/arrays/timedeltas.py
- [x] core/indexes/category.py
- [x] core/indexes/datetimes.py
- [x] core/indexes/interval.py
- [x] core/indexes/numeric.py
- [x] core/indexes/period.py
- [x] core/indexes/range.py
- [x] core/internals/block.py
- [x] core/internals/managers.py
- [x] core/reshape/reshape.py
- [x] core/strings/object_array.py
- [x] core/base.py
- [x] core/common.py
- [x] core/frame.py
- [x] core/generic.py
- [x] core/series.py
