test(util/lazy_list): add simple lazy_list example

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel/constraint): simplify constraint interface, and add choice constraint

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel/abstract): add abstract_locals, and remove abstract_p

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library/kernel_bindings): expose methods substitution::for_each_expr and substitution::for_each_level in the Lua API

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel/type_checker): simplify replace constraint_handler with closure

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library): add unifier module skeleton

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

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

Conflicts:
	src/library/elaborator/elaborator.h