Make use of IceInst::HasSideEffects when expanding a call.

This determines whether to add a FakeUse instruction to prevent
dead-code elimination.
Deal properly with floating-point values returned from function calls.

We're working very hard to avoid explicitly representing the x87
floating point stack in ICE...

The translator would often generate code like "fstp xmm0", which is an
invalid instruction.  So we hack the fstp emitter to route it through
a temporary stack slot if the dest is a physical register.
Get the floating-point return sequence correct.

Make sure the result gets loaded into st(0) before returning.