edoc,syntax_tools: Teach Map understanding
edoc: Add test for Maps in EDoc
Fix a few of Dialyzer's unmatched_return warnings
Fix library application appup files

As discussed in issue #240 *all* OTP library applications use the '.*'
wildcard as up and down version. This makes library applications
always up- and downgradeable. Using the wildcard version obsoletes
all maintenance tasks regarding library applications' appup files.
Additionally, it prevents upgrade problems caused by automatically
included application dependencies when using reltool to create
releases. Missing copyright headers are now consistently present.
Deprecate pre-defined built-in types

The types array(), dict(), digraph(), gb_set(), gb_tree(), queue(),
set(), and tid() have been deprecated. They will be removed in OTP 18.0.

Instead the types array:array(), dict:dict(), digraph:graph(),
gb_set:set(), gb_tree:tree(), queue:queue(), sets:set(), and ets:tid()
can be used. (Note: it has always been necessary to use ets:tid().)

It is allowed in OTP 17.0 to locally re-define the types array(), dict(),
and so on.

New types array:array/1, dict:dict/2, gb_sets:set/1, gb_trees:tree/2,
queue:queue/1, and sets:set/1 have been added.
Add test suites performing app and appup file checks

Add the mentioned test suites for *all* library and touched
non-library applications.
Merge branch 'hb/dialyzer/deprecate_types/OTP-10342'

* hb/dialyzer/deprecate_types/OTP-10342:
  Deprecate pre-defined built-in types
Bump versions and ensure that all are "normal" versions

Ensure all are "normal" versions according to the new version scheme
introduced in OTP 17.0
Introduce runtime_dependencies in .app files

Most dependencies introduced are exactly the dependencies to other
applications found by xref. That is, there might be real dependencies
missing. There might also be pure debug dependencies listed that
probably should be removed. Each application has to be manually
inspected in order to ensure that all real dependencies are listed.

All dependencies introduced are to application versions used in
OTP 17.0. This since the previously used version scheme wasn't
designed for this, and in order to minimize the work of introducing
the dependencies.
edoc: Add map/0 as a new predefined type
Merge branch 'egil/maps-doc'

* egil/maps-doc:
  doc: Add Maps example for sequential programming
  doc: Mention map expressions and map guards
  doc: Add maps to reference manual
  edoc: Add map/0 as a new predefined type
  doc: Descripe Maps type syntax
  doc: Clearify language of user-defined attributes
  doc: Document Maps datatype in reference manual
  erts: Document map guard functions
  erts: Fix is_map/1 spec
Update release notes