ssl: Server now ignores client ECC curves that it does not support instead of
crashing.

When TLS client sends Supported Elliptic Curves Client Hello Extension
the server shall select a curve supported by both sides or refuse to
negotiate the use of an ECC cipher suite.
Merge branch 'sverk/maps-erl_interface'

* sverk/maps-erl_interface:
  erts: Add distribution capability flag for maps DFLAG_MAP_TAG
  erts: Change external format for maps
  erts: Document external format for maps (MAP_EXT)
  erl_interface: Add test for ei_skip_term of container terms
  erl_interface: Add map support in ei_skip_term
  erl_interface: Fix mem leak in ei_decode_encode_test
  erl_interface: test decode/encode of maps
  erl_interface: Add ei encode/decode for maps
  erl_interface: test decode_encode of tuples and lists
  erl_interface: refactor ei_decode_encode_test.c
compiler: Create literal Maps in creation if possible
[snmp/agent] Fixed request id generation

When testing the agent, it is started and then used for a series
(v1, v2, v3, ...) of tests. But the individual test cases are
use one instance of the test manager. Because of this, the requerst
id cannot be a counter starting from 1 or any counter for that
matter. Instead every request id was generated using random.
But this is obiously not a guarantee fo uniqueness, it merely
makes it unlikely that the request ids will be reused.
To get around this problem (without having to rewrite the
entire agent test suite) a simple (global) counter server is
introduced. It is started at the start of the agent test suite
(init_per_suite) and stopped at the end (end_per_suite).
Fix evaluation of empty map updates in erl_eval
Fix evaluation of empty map updates in the debugger
Fix evaluation of empty map patterns in erl_lint

Reported-by: José Valim
erts: Fix is_map/1 spec
erts: Document map guard functions

* erlang:is_map/1
* erlang:map_size/1
Change encoding for XML files to utf-8

These are some files that were erronously missed earlier:

   erts/doc/src/time_correction.xml
   lib/crypto/doc/src/crypto_app.xml
   lib/snmp/doc/src/snmpa_mib_data.xml
   lib/snmp/doc/src/snmpa_mib_storage.xml
Remove "coding: utf-8" from test files

UTF-8 is now the default encoding and should no longer be
specified. These have probably been merged from maint earlier and the
coding statement was missed.

   lib/dialyzer/test/opaque_SUITE_data/src/modules/opaque_erl_scan.erl
   lib/diameter/test/diameter_codec_test.erl
   lib/ssh/test/ssh_unicode_SUITE.erl
Clarify the reference manual regarding source file encoding
compiler: Change Maps Core Format

Ex.

Instead of:

    M~{~<K,V>}~

The format is now:

    ~{~<K,V>|M}~

This also removes a shift/reduce warning.

The changes in core_pp now requires compiler-5.0 to compile
because of is_map/1 guard, i.e. a need for a compiler with Maps know-how.
erts: Handle literals in is_map/1
compiler: Guard BIF is_map/1 is pure
compiler: Support literal maps in cerl_clauses:match/2
compiler: Validate Map src

Reject all expressions that are known to fail.
Emit 'badarg' for those expressions.

Ex.

    []#{ a => 1}

Is not a valid map update expression.
compiler: Constant fold Maps that are safe

For updates of Map literals which may cause an error will be
determined in runtime, i.e. instructions are emitted for those
updates.

The changes in cerl now requires compiler-5.0 to compile because of
is_map/1 guard.
compiler: Change #c_map{var} to #c_map{arg}

Not only variables are allowed as arguments, the name should reflect that.

Change cerl Map argument interface
 * cerl:map_arg/1 is more suitable then cerl:map_val/1 in this case.
stdlib: Properly lint map key expressions

Only values are valid key expressions.