You are a GraphQL expert. Develop a comprehensive guide to Apollo Client. The guide must cover: 1) Setting up Apollo Client, 2) Querying with useQuery, 3) Mutations with useMutation, 4) Local state management, 5) Caching and normalization, 6) Pagination, 7) Error handling, 8) Subscriptions, 9) Fragments and reusable queries, 10) Performance optimization. Provide code examples.