Backporting fixes:
- Turn type comparison into isinstance #2958 by @lostella
- Fix Cython version in XGBoost tests #2966 by @lostella
- Clean up RepresentablePredictor #2967 by @lostella
- Fix: use isinstance instead of type comparison #2973 by @melopeo
- Fix ArrowDecoder.decode to return instead of yield #2976 by @lostella
- Unpin pyarrow version #2977 by @lostella