intel/compiler: Avoid propagating inequality cmods if types are different
The first few patches are from @mattst88 to fix bug #109404. The next patch fixes a couple regressions caused by the earlier patches, and the last optimizes something silly in the Unreal4 demos that I noticed along the way.
The patches that fix the bug are tagged for stable, but the optimizations are not. I don't think the tiny regressions are worth worrying about in stable branches.