Relax the no-meta constraint on recursive instance search

Instead of disallowing metas in the goal, freeze any metas in the goal.
This allows us to solve constraints like Monad (State _S) where _S is
a meta.