CLN: Add typing for dtype argument in io/sql.py
Follow up PR for #37546:

- Added typing `Optional[DtypeArg]` for dtype arg in pandas/io, since those functions accept single values and dicts as `dtype` args
- Added typing `Optional[Dtype]` for dtype arg in pandas/core, since those functions only accept a single value as `dtype` args
- Added typing `Optional[NpDtype]` for dtype arg in pandas/core for functions that only accept numpy dtypes as `dtype` args


- [ ] closes #xxxx
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry


