Make private fields private in the generated code as well

They cause name clashes when a class and its superclass both declare
a pointer field named "priv", but the pointers are differently typed.
We do not have to know about private fields anyways, so make them
private to prevent inheritance. Leave them in place so that BridJ
knows about them.
Prefix class name to methods already defined in a superclass

This is to prevent collisions with inherited methods.
Parse constructors as methods

They are defined the same way methods are in the gir files.
Also check for method name conflicts in already defined classes

This is to avoid cases like GstPoll.wait() conflicting with
Object.wait().