Add passing spec

GIMarshallingTests::Object#method_int8_arg_and_out_caller is already
handled correctly.
Handle truly callee-allocated simple types

By default, an out argument will always be marked as caller-allocated=0.
If the C type is a pointer to a simple type, this makes no sense. For
example, a gint* needs to be allocated by the caller, or else the caller
will not know where the value will exist. However, a gint** can be
allocated by the callee (at least the inner pointer). This commit adds
support for the latter case for both functions and callbacks.
Fix formatting nit
Fix spec to work around boxed struct invalidation

The GIMarshallingTests::BoxedStruct.inout method frees its argument
since at least gobject-introspection 1.40. It has a right to do this,
since the function is marked transfer-ownership="full". However, in this
spec it leaves `bx` in a sorry state. GirFFI currently doesn't handle
this at all.
Clarify method names
Refactor to clarify logic
Add skip guard for call_vfunc_with_callback
Handle callee-allocated simple types [merges 'callee-allocated-simple-types']