Implement the final change to INCOHERENT from Trac #9242

The change here is to make INCOHERENT slightly more permissive:

  if the selected candidate is incoherent
  then ignore all unifying candidates

This allows us to move the {-# INCOHERENT #-} pragma from
  from   instance Typeable (f a)
  to     Typeable (n:Nat) and Typable (s:Symbol)
where it belongs, and where Trac #9242 said it should be.

I don't think this will affect anyone.

I've updated the user manual.