fix(frontends/lean/pp): let expressions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
perf(kernel/for_each): delay initialization of visited set

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel/for_each): allow function F to interrupt for_each search

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
perf(kernel/metavar): improve performance of has_assigned_metavar by avoiding for_each+exception

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel/for_each): add option for disabling cache of atomic expressions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>