Order of Ops and Effect of makeExtendSchemaPlugin and makeProcessSchemaPlugin
<!-- Before opening an issue: if you use `npm` try running `yarn` instead; if
      you run `yarn`, please try running `npx yarn-deduplicate && yarn`. -->

<!-- You can also chat with us on Discord: http://discord.gg/graphile -->

### Summary

I did my best to search through the docs and the issues here (tried `org:graphile "makeExtendSchemaPlugin" "makeProcessSchemaPlugin"` which yielded just one isssue). 

I'm curious about the order of operations (if any) and how `makeExtendSchemaPlugin` and `makeProcessSchemaPlugin` effect one another. In testing, I created two plugins;

1. one with `makeExtendSchemaPlugin` that added a mutation to the schema (where there were none):

```ts
makeExtendSchemaPlugin({
  typeDefs: gql`
    type Mutation {
      bar: Boolean
    }
  `,
  resolvers: {
    Query: {
      foo: () => false
    }
  }
});
```

2. and one with `makeProcessSchemaPlugin` that simply outputs the node name using  `mapSchema`  from `@graphql-tools/utils`. 

I then added those two plugins, in that order to the `appendPlugins` array. The result was surprising. Both the use of `mapSchema` and `printSchema` yielded the same result: the `Mutation` was missing.

I'd like to further understand the internals at play here. On the surface and based on the docs, I would expect anything added to the schema via `makeExtendSchemaPlugin` to appear when I iterate over or print the schema. Please help me understand the process here. If possible, please let me know in which plugin or hook I might be able to view the schema in it's final form. 

### Additional context

On a whim, right after I opened this issue, I changed my `typeDefs` to include `extend` before `type Mutation`:

```ts
makeExtendSchemaPlugin({
  typeDefs: gql`
    extend type Mutation {
      bar: Boolean
    }
  `,
  resolvers: {
    Query: {
      foo: () => false
    }
  }
});
```

And the Mutation appeared in both the printed schema and `mapSchema` results. I'd still like to know more about the internals when you have the time to share, and would love to know more about why `makeExtendSchemaPlugin` seems to specifically require `extend` when the type hasn't previously been added to the schema. I'm guessing there's a reason there rather than a bug.