Fix a bunch of issues with cloning.

* Caught while trying to use cloned instructions in interpreter.
  So far, cloning was only being used for ensure-blocks and
  in IRBuilder where these bugs were less problematic or at least
  never caused problems so far.