Allow all auto imports to be suppressed at once

This patch introduces the no_auto_import attribute:

    -compile(no_auto_import).

Useful for code generation tools that always use the
qualified function names and want to avoid the auto
imported functions clashing with local ones.

Implementation wise, we chose to have a special flag
'all' to avoid doing many set lookups when checking for
suppression.
Shell: expand 0-arity functions all the way to closing parenthesis

`erl` has tab completion for modules' exported functions but expands
only up to the opening paren. This commit closes that opening paren
in case the function is of arity zero and there is no other function with
the same name. It browses the lists of matches (a 2nd time) for Arity,
on complete match and then decides what to append.
fix -Wno_behaviours doc error in dialyzer man page

The description of the -Wno_behaviours in the dialyzer man page incorrectly
includes a "***" footnote marker, indicating that it's an option that turns
on a warning rather than turning it off. Since the option actually turns
off a warning, remove the marker. This fix makes the documentation match
that obtained from dialyzer --help.
ssh: Fix dialyzer type specs and documentation

Similar to d9ebfb8. The wrong specs were leading to dialyzer warnings
like this in our application since R16B03:

The pattern 'ok' can never match the type {'error',_}.
The pattern {'error', {'already_started', 'ssh'}} can never match the type 'ok'.
The pattern {'error', _} can never match the type {'open_error',_,string(),string()}.
v3_core: Annotate list comprehensions to help out dialyzer
asn1ct_tok: Check return value from file:close/1

This will silence a dialyzer warning for unmatched return.
asn1ct_value: Silence a dialyzer warning for unmatched return
asn1ct_gen: Silence dialyzer warnings for unmatched returns
asn1ct_table: Silence a dialyzer warning for unmatched return

Change the code so that delete/1 always returns 'true'.

While at it, also remove the TODO comment and explain in a comment
why we want to keep the delete/1 function.
asn1ct_table: Remove unused flexibility in table creation

Unused flexibility complicates the code and can hide bugs.

new/1 is never called with a table name that already exists, so
we should remove the code that allows for that. That will increase
the coverage of asn1ct_table to 100%.

Also remove the new/2 and new_reuse/2 functions which are never
called externally.
asn1ct: Silence dialyzer warnings for unmatched returns
asn1ct_check: Correct error handling for illegal OCTET STRING values

The value for an OCTET STRING must be specified as either a bstring
or an hstring. Everything else (including character strings) is
illegal.

This correction also removes the offending code that caused an
unmatched return warning from dialyzer.
asn1ct_check: Remove useless call to check_integer/3

check_integer/3 can check nothing for an INTEGER without any named
values. Remove the useless call to silence a dialyzer warning for
unmatched return.
asn1ct_check: Use a return value to silence a dialyzer warning

Unfortunately the code in question is not covered by our test
suites, but it should be correct to do the same thing as in
the clause above.
Fix +Mea config
Handle map fields in their own function in erl_eval

Map fields (K := V, K => V) are not expressions and shouldn't be clauses of
erl_eval:expr/5.
Support maps in erl_prettypr
observer: Fix crash when clicking on pid inside a html-term
observer: Fix binary links

Heap binaries crashed, rework it and add links always.
So the user can the binary in hex or whatever view he wants
stdlib: Add tests for Maps in erl_prettypr