mark up modules with encoding as needed
Fix an issue with parentheses and separate values of union types

Since EDoc 0.7.7 (R14B02) separate values of union types can be
annotated. However, the parser has hitherto chosen not to add the
necessary parentheses due to backwards compatibility.

From this release on code traversing the output of edoc_parser needs
to take care of parentheses around separate values of union types.
Examples of such code are layout modules and doclet modules.

The following example shows annotated values of a union type:
-type t() :: (Name1 :: atom()) | (Name2 :: integer()).
[edoc] Introduce Unicode support for source files
edoc: Remove support for packages
Use ~ts for filenames
[edoc] Fix a bug involving a type declaration and a comment
edoc,syntax_tools: Teach Map understanding
Fix a few of Dialyzer's unmatched_return warnings
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.
edoc: Add map/0 as a new predefined type