gimarshallingtests: Do not leak GPtrArray contents when emitting signals
We only were freeing the containers, but not the allocated contents, so use container-only function as base when possible or ensure we free them otherwise.
Don't using g_ptr_array_foreach() as it may lead to a warning, so let's just set the free func and let the array handle it.
/cc @carlosg