Improve test clarity
Implement GObject.signal_connect using Closure objects

- Use MarshallingMethodBuilder to generate a custom marshaller for each
  signal
- Use SignalClosureBuilder to build a RubyClosure descendant that uses the
  custom marshaller
- Use ClosureArgumentBuilder to generate the argument conversions for the
  custom marshaller
- Inject the user data argument during when instantiating the RubyClosure
- Fixes failure of signal invocation to return the correct return values
Improve test by adding explicit pass
Remove unused SignalBuilder and SignalBase
Move injection of user data to GObject.signal_connect
Remove unused ISignalInfo#create_callback
Make GObject.signal_emit deal with pointer details

ISignalInfo shouldn't need to know about converting an array of GValue
to a pointer.
Use generated GObject.signal_emitv directly

This avoids the need for manual conversion from array to pointer.
Remove unused methods on ISignalInfo
Add descriptive comment to CallbackArgumentBuilder
Remove unused method from CallbackArgumentBuilder
Make ClosureArgumentBuilder a descendant of CallbackArgumentBuilder

This makes sense since the building logic is identical, except for the
decision whether conversion is actually needed. That said,
ClosureArgumentBuilder only uses the logic for :in arguments at the
moment.
Silence warning
Use closures as signal handlers [merges 'callbacks-to-closures']