1) Postponing the application of instances when there
is a possibility of a given matching. With the addition
of prioritizing equalities this fixes #5002 and #4981.
2) Implemented caching of flattening in constraint
simplification. This improves efficiency (fixes #5030)
3) Simplified pushing of unsolved wanteds
(now pushing only equalities) inside implications.