Fixes for skolem definition management (#8301)
Fixes two issues with how we manage skolem definitions (used for tracking which assertions are relevant for the decision engine).
First, the theory proxy must be notified of skolem definitions before we have assertions involving them, or else hasSkolems is wrong. This was previously done incorrectly for lemmas. This PR changes the order in PropEngine::assertLemmasInternal.
Second, skolem definitions are local to a solver instance and should not be managed by attributes, moreover they are user-context dependent. This changes it to a local user-context dependent map in Skolem.
Fixes #8296.