don't freeze rigidly constrained metas in instance search

If there's a constraint _M us = D vs it's safe to let (recursive)
instance search instantiate _M.

This is the final piece of the puzzle to make constructor classes (Monad, Functor, etc) work properly.