Workaround PIC limitations in cpuid.

cpuid uses register ebx, but ebx is reserved in PIC.
So save ebx, swap ebx & edi, and return edi.

Copied from Igor Pavlov's equivalent fix for 7zip (in CpuArch.c),
which is public domain and thus OK license-wise.
Merge pull request #443 from idunham/fix

Workaround PIC limitations in cpuid.