generator: Bumped parser_version to 3

Added support for new closure and destroy attributes from which we can
determine which callback a parameter belongs to.
generator: Added GThread type
generator: GThread type should be SimpleGen
generator: fixed Equals/GetHashCode for no fields or padding

Fixed Equals/GetHashCode methods when struct has no fields,
or field is padding.
generator: faster Equals implementation
generator: Added throws attribute to parameters

This enables gapi to decide whether a parameter is
really throwing or should be handled as a usual parameter.
generator: fixed string[] return types
generator: Added constants to gapi

Unfortunately, gir marks all integers as gint regardless
of its size. We have to check if the value will really
fit into a int, that is why there is an automatic fallback
to long.
generator: fixed writeable and readable detection
generator: Added count param detection for return values
generator: fixed string array return type for virtual_methods
generator: Added long long conversion
generator: readable&writable attribs to be backwards compat
generator: Added conversion for unions

Also removed all assumptions for parameters when
ParserVersion >= 3
generator,glib: Added Mutex, RecMutex, Cond types

Bind these types manually and added generator support
for them.
generator: added defaultconstructoraccess attrib
generator: added conversion for byref structs

The pointer from native is stored inside of a class which
wraps the structure. Fields can be accessed by marshalling
from and to the pointer. glib: Value.Update does now invoke
a private Update() method which is needed to update the new
structures.
generator: null check for handle (NativeStructGen)

Check Handle against IntPtr.Zero before marshalling.
generator: added handling of optional parameters
generator: removed wrong glue code for structs