arg-cache: Add support passing caller-allocated C-arrays
When a function uses caller-allocated C-arrays are used, we can easily create such structures when we know the size of the array elements.
Sadly, no test as we have no marshalling functions (yet).
In fact I have locally a messy old branch I did to support lots of caller-allocated cases too (including gimarshaller stuff), but this is just a tiny bit of it that is possible to achieve without major changes.
Edited by Philip Chimento