Naming conflict trying to produce CamelCase fields for "f_12_5hz" and "f_125_hz" (both want to be "f125Hz")
### Summary

Hi team,

I have a table in Postgres that looks like something like this (truncated output):

```
some_database=# \d+ dyn_vessel_hr_comp_stat
                                                              Table "public.dyn_vessel_hr_comp_stat"
      Column      |           Type           | Collation | Nullable |                       Default                       | Storage  | Stats target | Description
------------------+--------------------------+-----------+----------+-----------------------------------------------------+----------+--------------+-------------
...
 f_125_hz         | double precision         |           |          |                                                     | plain    |              |
 f_12_5hz         | double precision         |           |          |                                                     | plain    |              |
...
```

And when I attempt to start Postgraphile (as a container, image pulled just today), I get the following error:

```
2022-01-12T14:28:53.415533307Z Error: Two columns produce the same GraphQL field name 'f125Hz' on class 'public.dyn_vessel_hr_comp_stat'; one of them is 'f_12_5hz'
2022-01-12T14:28:53.415554045Z     at /postgraphile/node_modules/postgraphile-core/node_modules/graphile-build-pg/node8plus/plugins/PgColumnsPlugin.js:93:15
2022-01-12T14:28:53.415573402Z     at Array.reduce (<anonymous>)
2022-01-12T14:28:53.415579704Z     at PgColumnsPlugin/GraphQLObjectType:fields/PgColumns (/postgraphile/node_modules/postgraphile-core/node_modules/graphile-build-pg/node8plus/plugins/PgColumnsPlugin.js:86:44)
2022-01-12T14:28:53.415586176Z     at SchemaBuilder.applyHooks (/postgraphile/node_modules/postgraphile-core/node_modules/graphile-build/node8plus/SchemaBuilder.js:264:20)
2022-01-12T14:28:53.415591696Z     at fields (/postgraphile/node_modules/postgraphile-core/node_modules/graphile-build/node8plus/makeNewBuild.js:505:40)
2022-01-12T14:28:53.415596525Z     at resolveThunk (/postgraphile/node_modules/graphql/type/definition.js:480:40)
2022-01-12T14:28:53.415601695Z     at defineFieldMap (/postgraphile/node_modules/graphql/type/definition.js:692:18)
2022-01-12T14:28:53.415606624Z     at GraphQLObjectType.getFields (/postgraphile/node_modules/graphql/type/definition.js:633:27)
2022-01-12T14:28:53.415611252Z     at collectReferencedTypes (/postgraphile/node_modules/graphql/type/schema.js:366:81)
2022-01-12T14:28:53.415615660Z     at collectReferencedTypes (/postgraphile/node_modules/graphql/type/schema.js:368:9)
```

I assume it's because it removes the underscores from the field names while converting to camelCase- unfortunately `f_125_hz` (as in 125 Hz) and `f_12_5hz` (as in 12.5 Hz) are the same when that string replace is applied.

### Steps to reproduce

I've got a basic `Dockerfile` that wraps up `graphile/postgraphile`- it looks like this:

```
FROM graphile/postgraphile

RUN npm install @graphile/postgis
RUN npm install chalk
RUN npm install pg-connection-string
RUN npm install graphql
RUN npm install tslib
RUN npm install debug
RUN npm install jsonwebtoken
RUN npm install pg-sql2
RUN npm install @graphile/lru
RUN npm install parseurl
RUN npm install iterall
RUN npm install @graphile/pg-pubsub
RUN npm install iterall
```

And I'm running it like this:

```
docker build -t postgraphile .
docker run -d --restart=always --init -p 5000:5000 --name postgraphile postgraphile --connection 'postgres://postgres:SomePassword@127.0.0.1:5432/some_database' --schema public --watch --enhance-graphiql --subscriptions --append-plugins @graphile/postgis --subscriptions
docker logs -f -t postgraphile
```

### Expected results

Postgraphile spins up and I can get freaky with GraphQL on my database.

### Actual results

Postgraphile fails to start with the error above.

### Additional context

- PostGraphile v4.12.8
- Postgres 13 w/ PostGIS 3.0
- Docker CE 20.10.7
- Ubuntu 20.04.2 LTS

### Possible Solution

The problem occurs at https://github.com/graphile/graphile-engine/blob/a9fcbafc52244495420faac5da0e05cbceaf5e69/packages/graphile-build/src/makeNewBuild.js#L1104

Though I'm not really familiar enough with the GraphQL specification to know what to suggest here- certainly it seems the field must end up as sane CamelCase and from looking at original field name alone you don't have the domain context to know the underscore between "12" and "5 in `f_12_5_hz` is replacing a decimal point.

I guess you could suffix duplicates with an occurrence index? Even then back in GraphQL land I'll be like "hmm, f125Hz and f125Hz1- which is which".

Probably I'll just need to change my field name (e.g. something like `f_12_point_5_hz`) to work around this- but I figured I'd raise as an issue just in case this hadn't been stumbled across yet.