feat(util): add red-black trees

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(util/splay_map): remove unnecessary operation

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(util/rb_tree): add check_invariant for red black trees

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(util): add maps based on red-black trees

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel): define metavar substitution based on red-black trees

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