register_type
Description:
Looks up or registers a type that is implemented with a particular type plugin.
 If a type with name type_name was previously registered, the Type 
      identifier for the type is returned, otherwise the type is newly registered, and the resulting 
      Type identifier returned.
When reregistering a type (typically because a module is unloaded then reloaded, and reinitialized), this and
       parent_type must be the same as they were previously.
As long as any instances of the type exist, the type plugin will not be unloaded.
Since 2.56 if this is null this will call g_type_register_static
       instead. This can be used when making a static build of the module.
Parameters:
| this | |
| parent_type | 
           the type for the parent class  | 
      
| type_name | 
           name for the type  | 
      
| type_info | 
           type information structure  | 
      
| flags | 
           flags field providing details about the type  | 
      
Returns:
| 
           the new or existing type ID  |