Empty structs are now (correctly) invalid. The hack of using an empty
struct to represent a handle returned from a builtin has been unnecessary
since opaque structs were implemented: now a pointer to an opaque struct
can be used. This is mostly safe as handles are aways negative and thus
attempting to dereference such a pointer should result in a VM error. It
will be even safer once const is implemented and the pointers can be made
constant (eg, typedef struct handle * const handle;)
class with the same name. This will break things. To support it, there are
three new classes, one of which is incomplete (AutoreleasePool). It'll get
finished soonish, but the rest of the class lib will need some updating to
work.