GIR writer: Fix generation of array and delegate parameters
Array and delegate parameters correspond to multiple parameters at the
C level. GObject-introspection expects them them to be written
separately, with special attributes refering to the main ones.
Since implicit output arguments must be generated for return values,
writing params and return values was combined to common methods. They
were always used together, so the main downside is the method now takes
long list of arguments to cover all the cases.
Note that only default argument positions are supported.