[edoc] Handle optional behaviour callbacks
Allow more type names

product/_, union/_, range/2 as well as tuple/N (N > 0), map/N (N > 0),
atom/1, integer/1, binary/2, record/_, and 'fun'/_ can now be used as
type names.
Modify representation of the map type

Types are represented by quadruples {type, LINE, Name, Args},
but maps were represented by five-tuples
{type, LINE, map_field_assoc, Dom, Range}.

Note: this is *not* about the quadruples used for representing
expressions, {map_field_assoc,L,K,V}.
[edoc] Remove pre-defined types dict(), digraph(), &c