rustc: Fix x86 ffi for struct arguments

This fixes struct passing abi on x86 ffi: Structs are now passed
indirectly with byval attribute. Empty structs are explicitly ignored
rather than directly passed.

Fixes #5744
Fixes #11198
Fixes #11343