test(util/rb_tree): multi-thread test for rb trees

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(util): add method get_rc (mainly for debugging purposes)

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel): remove pairs from kernel

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
chore(util): fix style

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel): store free variable range in composite expressions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel/free_vars): use get_free_var_range to improve has_free_var_in_range performance

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel/free_vars): use get_free_var_range to improve lift_free_vars and lower_free_vars performance

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel/instantiate): use get_free_var_range to improve instantiate, remove instantiate_with_closed, fix index overflow bug

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(kernel/expr): make sure we cannot create a free variable with index uint_max, reason: get_free_var_range would return an incorrect value

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel): replace kernel object with definition, disable affected files

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