SI-7899 Allow by-name inference outside of -Xstrict-inference

As usual, the hole has been exploited in the wild. While you
can't abstract over by-name-ness without running into the
ClassCastException or an un-applied Function0, there are cases
like the enclosed test where you can tiptoe around those
cases.

I'll try to change Scalaz to avoid using this (it's only used
in one file) but until then this commit conditionally moves the
sound inference behind the recently added -Xstrict-inference.