`@graphile-contrib/defaults` package
### Feature description

Publish a package that contains the recommended options (https://www.graphile.org/postgraphile/usage-library/#recommended-options) as code. Small and simple. Something like this:

```ts
import type { PostGraphileOptions } from "postgraphile";
import simplifyInflectorPlugin from "@graphile-contrib/pg-simplify-inflector";

export const defaultsForDevelopment: PostGraphileOptions = {
  subscriptions: true,
  watchPg: true,
  dynamicJson: true,
  setofFunctionsContainNulls: false,
  ignoreRBAC: false,
  showErrorStack: "json",
  extendedErrors: ["hint", "detail", "errcode"],
  appendPlugins: [simplifyInflectorPlugin],
  exportGqlSchemaPath: "schema.graphql",
  graphiql: true,
  enhanceGraphiql: true,
  allowExplain(req) {
    return true;
  },
  enableQueryBatching: true,
  legacyRelations: "omit",
  pgSettings(req) {
    return {};
  },
};

export const defaultsForProduction: PostGraphileOptions = {
  subscriptions: true,
  retryOnInitFail: true,
  dynamicJson: true,
  setofFunctionsContainNulls: false,
  ignoreRBAC: false,
  extendedErrors: ["errcode"],
  appendPlugins: [simplifyInflectorPlugin],
  graphiql: false,
  enableQueryBatching: true,
  disableQueryLog: true,
  legacyRelations: "omit",
  pgSettings(req) {
    return {};
  },
};

export function getDefaults(development: boolean = false): PostGraphileOptions {
  return development ? defaultsForDevelopment : defaultsForProduction;
}
```

Example usage:

```ts
import type { PostGraphileOptions } from "postgraphile";
import { getDefaults } from "@graphile-contrib/defaults"
import connectionFilterPlugin from "postgraphile-plugin-connection-filter";

const defaults = getDefaults(process.env.NODE_ENV === "development");

export const options: PostGraphileOptions = {
  ...defaults,
  graphqlRoute: "/api/data/graphql",
  graphiqlRoute: "/api/data/graphiql",
  appendPlugins: [
    ...defaults.appendPlugins!,
    connectionFilterPlugin,
  ],
}
```

### Motivating example

Docs say these [recommended options](https://www.graphile.org/postgraphile/usage-library/#recommended-options) can't be just enabled by default because they may be breaking changes (makes sense) and may have security repercussions (not really clear what this means).
It's also great to be able to see/compare options for dev vs prod.

But setting these recommended options in each project is a little messy, since it makes it hard to see which options are just the recommended ones and which are custom or specific to my project.

With a `@graphile-contrib/defaults` package:
- I could remove that noise from my project
- I could still refer to what options are in effect, and compare dev vs prod
- when core package adds a new option that is recommended, it can be enabled by default with a **breaking change in only the defaults package**
- when core package adds a new option that is recommended, rather than maybe/probably never learning about it, I'll notice that `@graphile-contrib/defaults` is outdated and look at what's changed

### Supporting development

I:

- [X] am interested in building this feature myself
- [X] am interested in collaborating on building this feature
- [X] am willing to help testing this feature before it's released
- [ ] am willing to write a test-driven test suite for this feature (before it exists)
- [ ] am a [Graphile sponsor](https://www.graphile.org/sponsor/) ❤️
- [ ] have an active [support or consultancy contract](https://www.graphile.org/support/) with Graphile
