add assert version of get_builtin_type() using a tag
add all_of() utility for initializer_list and do some refactorings
analyze unary_expr and if_expr