compiler: Fix v3_core Maps pretty printing

Key and value were interchanged.
compiler: Fix v3_kernel Maps pretty printing
compiler: Maps are always patterns never values in matching

Removed dead code.
Allow Name/Arity syntax in maps inside attributes

Currently Name/Arity syntax is supported in list and tuple terms. This change makes it possible to use this syntax in map terms for consistency and convenience.

Example:
-custom(#{test1 => init/2, test2 => [val/1, val/2]}).
stdlib: erl_lint Map key variables
stdlib: Update Map tests
compiler: Normalize unary ops on Maps key literals

Unary ops are normalized before core transformation, i.e. handle
negative integers as map keys.

Strictly speaking, map keys are expressions but by handling them as
patterns we can normalize negative integers.
compiler: Use variables in Map core pass
compiler: Use variables in Map kernel pass
compiler: Use variables in Map beam assmebler
compiler: Shameless v3_core hack for variables
compiler: Reintroduce binary limit for Map keys
compiler: Use variables in Map cerl inliner
compiler: Use expressions in core patterns

Two patterns, binary_segment size and map_pair key, are expressions
even in matching. If only bound variables are used we are fine but
some expressions which appears as literals needs to be lifted.

Currently only Map key binaries will use this.
compiler: Fix v3_core Maps pair chains

Check for literals instead of variables when constructing chains.
compiler: Update Map tests
debugger: Update Map tests
stdlib: Use environment bindings for Maps keys in erl_eval matching
stdlib: Update Map tests
Fix typo in erlang-mode comment