erl_interface: refactor ei_decode_encode_test.c

to prepare for lists, tuples and ... maps!
erl_interface: test decode_encode of tuples and lists
erl_interface: Add ei encode/decode for maps
erl_interface: test decode/encode of maps
erl_interface: Fix mem leak in ei_decode_encode_test
erl_interface: Add map support in ei_skip_term
erl_interface: Add test for ei_skip_term of container terms
erts: Document external format for maps (MAP_EXT)
erts: Change external format for maps

to be: 116,Arity, K1,V1,K2,V2,...,Kn,Vn

instead of: 116,Arity, K1,K2,...,Kn, V1,V2,....,Vn

We think this will be better for future internal map structures
like HAMT. Would be bad if we need to iterate twice over HAMT
in term_to_binary, one for keys and one for values.
erts: Add distribution capability flag for maps DFLAG_MAP_TAG

This is just a preparation to allow detection of older nodes
that do not understand maps (R16 and older).
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