Ability to add codecs via plugin system
### Feature description

It is currently not possible to add a custom scalar codec via the plugin system

### Motivating example

Working on a project that has columns of type ltree and mutation function parameters of type ltree

https://github.com/graphile/crystal/issues/1772
https://discord.com/channels/489127045289476126/1157342633644003429

### Supporting development

I [tick all that apply]:

- [ ] 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)
- [x] am a [Graphile sponsor](https://www.graphile.org/sponsor/) ❤️
- [ ] have an active [support or consultancy contract](https://www.graphile.org/support/) with Graphile
