Allow defining new GTypeInterfaces
Similar to how we define a class { ... }
, we should be able to define an interface { ... }
for a GTypeInterface. This should generate the boilerplate code to register the interface with the GObject type system, similar to how we generate code for new classes.