Reinstate the UnsupportedType class for void and String[].

There are two static instances of this class, one for void and one
for String[].

An unsupported type is incompatible with all other types, including
itself, effectively preventing the programmer from calling the main
method or referencing its formal parameter without getting a type
error.