Whenever a union with a single subtype [X] is detected, emit a warning and generate the field as the subtype X instead of generating it as a union.

All testcases are now generated with version "testing", so that the generated code is not altered every run.