Improve orientation

I came across some stupid re-orientation, when debugging something else.
For example, we were re-orienting

    t ~ fsk
to
   fsk ~ t
where fsk is a flatten *skolem* and t is a meta type varaible.
The logic was just wrong.
Fix canIrredPred again

This follows up the earlier patch to Trac #6068, which I
obviously hadn't validated properly.
Include funTyCon in oprhNamesOfType (fixes Trac #8535)

Thanks to parcs for identifying both the bug and the right solution.