Avoid printing double name of vfunc

The origaniztion of GIR puts callbacks into two levels, both names
with callback name.  When printing callback, avoid printing the last
level, thus only one name will be seen.
Add support for instantiating class struct

This allows to get access to class struct from class type, while
previously it was possible to have access only from existing class
instance.  The syntax is:

local window_class = Gtk.Window._class()
window_class:list_properties()
Add support for automatic properties

Initial bare version, missing parts are:

- overrides
- custom setter/getter (aka calculated props)
- fancy ParamSpec creation.
Property installation fixes

Makes previous commit actually work.  Also adds new case for inherited
property, based on the test from Garrett Regier's lgi:derive-props
branch.
Fix multiple state type registration

If there are multiple states always append a state unique
id of the form "+L%u". This has no affect on the first state, thus
avoiding type name changes and a state is still prevented from
registering the same type name multiple times.