Refactor the `TypeTranslator` system a bit so that it is better designed for extension rather than the "plugin" style system that exists now. The current method seems to work but it's a bit awkward in that it introduces some circular logic if a custom translator needs to refer back to the default one. In the worst case it means embedding GroovyTranslator itself in the TypeTranslator.
Anyway, this is a breaking change because it completely alters the old method for handling this. On the plus side, this is a very low-level and internal feature that is only of interest to graph providers so it shouldn't break too much code out there.