Enhance GraphQL client with caching, rate limiting, and error handling features
- Updated README to reflect new features including per-user caching, rate limiting, and error handling.
- Introduced user cache management for efficient request handling.
- Implemented global and per-user rate limiting mechanisms.
- Enhanced error logging with detailed context for better debugging.
- Added middleware support for custom request/response processing.