predicates: replace instanceof with symbol based brand check (#4468)
This PR updates our predicates to rely on a brand check rather than `instanceof`.
We still pass brand check to our `instanceOf` utility and in development mode use the same logic as previously to throw our error with multiple instances of `graphql`.