Refactor grammar and unify base_expr into max_expr
Basic support for maps in the grammar
Unify max_expr to avoid duplication
Allow %{ foo => bar }
Support map updates
Ensure multiple kw args with pipe
Macro.to_string/1 for maps and struct AST
Merge pull request #2031 from liveforeverx/v0.13

Macro.to_string/1 for maps and struct AST
Basic maps compilation
Inline is_map, ensure proper traversal
Ensure maps properly handle variables in values
Get rid of record rewriter
Properly raise on matching on map keys
Move to new sigils syntax
Remove deprecated sigils
Remove outdated default args syntax
* implement Inspect for keyword in maps
* add basic tests for inspecting maps
* add basic support for inspecting structs

Signed-off-by: José Valim <jose.valim@plataformatec.com.br>
Temporarily disable consolidation since we cant handle both records and structs at once
Implement Enum for maps and add map_size to Kernel
Implement access and slightly reorganize tests