[ENH] Add read support for Google Cloud Storage
- [x] closes #19454
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Couple of remaining issues:
- I had to do some weird logging magic to suppress the output of `gcsfs` when catching authentication exceptions
- Proper Parquet support seems to require more specialization so I didn't try
- I'm not sure how to properly test this functionality without a `pandas-test` bucket and/or a mock GCS library like `moto`

cc @martindurant who might have some thoughts on other things I am doing wrong