Fix assorted code smells
Fix assorted code smells and add some TODOs
Refactor toward a single method of ingoing argument conversion
Remove special case when passing nil InOutPointer.from_array
Explain gir_ffi-base

- Explain why it exists
- Indicate that GLib::Strv and GObject::Lib are first defined there
Implement SizedArray, a class to wrap GLib's c-style arrays
Use GLib::SizedArray to convert pointers to sized array values
Simplify BaseArgumenBuilder#argument_class_name
Use GLib::SizedArray in return values
Remove special case for :strv
Implement GLib::SizedArray.from
Allow SizedArray#from to get its size from the passed-in array
Make SizedArray#from handle nil
Use SizedArray for arguments with direction :in and type :c
Use SizedArray for arguments with direction :inout and type :c
Refactor so :c is not a special case for input parameter conversion
Add some TODOs
Remove unused methods on GirFFI::InOutPointer
Get rid of ITypeInfo#type_specification

The argument builder uses #flattened_tag and #subtype_tag_or_class_name
directly as needed.
Make sure SizedArray is loaded properly