[graphile-export] Auto-detect invalid exports
Everything Graphile Export exports should be wrapped in `EXPORTABLE` to ensure all of the dependencies are also captured; for example:

```ts
import { lambda } from "grafast";

const foo = 1;

const plans = {
  Query: {
    // INVALID - doesn't capture "foo"
    addFoo: EXPORTABLE((lambda) => function (_, { $n }) {
      return lambda($n, n => n + foo);
    }, [lambda]);
  }
}
```

```ts
import { lambda } from "grafast";

const foo = 1;

const plans = {
  Query: {
    // VALID - all dependencies captured.
    addFoo: EXPORTABLE((lambda, foo) => function (_, { $n }) {
      return lambda($n, n => n + foo);
    }, [lambda, foo]);
  }
}
```

When Graphile Export is called; since it already runs everything through babel, we should be able to detect that the expression we've constructed references things that are out of scope and thus throw an error. (We'd do this as part of the IIFE stage, before reducing or removing the IIFE.)