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.