Add TODO about pushing FP return value into st(0).
Prevent calls from being dead-code eliminated.

Consider C code like this:

  float getRandom(void);
  float testCall(void) {
    (void) getRandom();
    (void) getRandom();
    (void) getRandom();
    return getRandom();
  }

LLVM assigns the result of the Call instruction to a variable that has
no uses.  Liveness analysis recognizes this and would like to
eliminate the Call instruction.  We need to be able to prevent this
because the callee may have global side effects.  The same would be
true for a volatile Load instruction.

This is fixed by adding the IceInst::HasSideEffects field, which the
Call instructions set to true, and IceInst::liveness() restrains
itself from setting the Dead field in this case.