[IR] Cleanup of inlining-related instruction cloning code.

* Got rid of the various cloneFor* methods and replaced with a
  single cloneForInlining method.

* Exposed the CloneMode enum publicly and used the cloning mode
  to do specialized cloning for some instructions based on mode.
  - This improves code readability and maintainability quite a bit.