perf(kernel/metavar): minor improvement
refactor(kernel): replace_visitor doesn't need to be in the kernel anymore
feat(util/rb_tree): add find_if method
perf(kernel/metavar): improve occurs_expr and occurs performance
feat(util/buffer): expose capacity method
perf(kernel/replace_fn): use 'recursive' replace_fn for "small" terms
chore(kernel/replace_fn): "name" constant
perf(kernel/expr_eq_fn): use thread local cache, and avoid memory allocation/deallocation
perf(kernel/metavar): used thread local cache for instantiate_metavars
perf(util/list): use memory pool for list cells
fix(kernel/metavar): compilation error in some compilers
refactor(kernel/instantiate): cleanup beta-reduce
fix(init): initialization problem
feat(frontends/lean/parse_table): add get_head_index auxiliary function for indexing notation declarations
feat(frontends/lean/parse_config): add get_notation_entries auxiliary function for returning the list of notation declarations that start with a given head symbol

This API is need to take notation declarations into account when pretty
printing expressions.
refactor(frontends/lean/inductive_cmd): move auxiliary method to expr.h
fix(library/type): modify declaration order and make sure Type1, Type2 and Type3 notations have precedence over Type' during pretty printing
fix(library/module): bug in import_module
feat(frontends/lean/pp): take notation declarations into account when pretty printing

TODO: support foldl/foldr and binders
fix(library/data/list/basic): mark `::` as infixr