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.
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
[ct test] Explicitly unregister event receiver to avoid badarg

... when two tests are run within the same test case.
Fix if-clauses that make code to be unreachable

Fix two cases where use of assigment operator instead of comparison
operator causes if-clauses to be always false and code to be unreachable.