Improved calling convention handling.

Win32 tests are reasonably close to passing, although I've broken
Linux-x86 in the process. I think the next step is to fix
AggregateLowering to keep as much type information as possible.