Refactor Builder::Type::Object
Simplify ArgumentBuilder#output_value
Refactor ArgumentBuilder#ingoing_parameter_conversion
Make enum a class

The enum builder returns a class, descended from EnumBase. Within the
class, the constant Enum is defined, whose value is the original
FFI::Enum.

To make attach_function work in the library modules, this constant needs
to be passed. Therefore, IEnumInfo.to_ffitype is changed to return that
constant.

Several helper functions are updated to handle the changed nature of
enums.

Still to do:

- Change from a class to a module.
- Delegate more behavior to the underlying enum.
- Define EnumBase.from to bring its behavior in line with the other
  types. This will simplify the argument builder code.

- Down the road, something similar will need to happen to callback
  functions.
Make EnumBase and all Enums a module
Add test for Regress::TestABCError.quark, a method on an enum
Create bindings for listing of methods on IEnumInfo
Implement missing IEnumInfo#find_method

This method exists for other info types, such as IObjectInfo, but not for
IEnumInfo. This commit adds a Ruby implementation.
Add method stubbing and building for enums
Add tests for enums in Regress

- Tests for values
- Tests for functions
Add tests for Regress::TestPrivateStruct
Add tests for Regress::TestFundamentalObject

The methods #ref and #unref are tested with TestFundamentalSubObject,
since the parent class cannot be instantiated.
Pass regular Ruby arrays in GIMarshallingTests tests

It is no longer necessary to create a GLib::Array object, as any passed-in
array is automatically cast to GLib::Array.