Make the type tag lookup more robust
Make the type tag lookup more robust

In order to gather all info about a type that EEP-48 requires,
we refer to EDoc #tag{} records.
These records do not contain the type name at the top level,
so this lookup was done just by line number.

When a header file is included into another file,
it might happen that the position information of two distinct type
definitions is the same - they are still different types,
but the lookup by line will return the wrong one.

This lead to the following error (on kernel/src/disk_log.erl):

    name: dlog_size
    arity: 0
    type attr: {attribute,82,type,{file_error,{type,82,term,[]},[]}}

    edoc: error in layout 'edoc_layout_chunks': {'EXIT',
                                           {{badmatch,{file_error,[]}},
                                            [{edoc_layout_chunks,meta_type_sig,4,
                                              [{file,"edoc_layout_chunks.erl"},
                                               {line,170}]},

This change introduces a more sophisticated and robust lookup,
which fixes the problem of types defined in include files.

potatosalad/otp,bjorng/otp,vinoski/otp,ferd/otp,g-andrade/otp,g-andrade/otp,erlang/otp,rlipscombe/otp,emacsmirror/erlang,bjorng/otp,rlipscombe/otp,dgud/otp,isvilen/otp,getong/otp,mikpe/otp,dumbbell/otp,rlipscombe/otp,dumbbell/otp,potatosalad/otp,dumbbell/otp,uabboli/otp,vinoski/otp,erlang/otp,ferd/otp,jj1bdx/otp,ferd/otp,bjorng/otp,potatosalad/otp,vinoski/otp,jj1bdx/otp,rlipscombe/otp,potatosalad/otp,vinoski/otp,bjorng/otp,emacsmirror/erlang,mikpe/otp,mikpe/otp,mikpe/otp,jj1bdx/otp,isvilen/otp,rlipscombe/otp,jj1bdx/otp,g-andrade/otp,dumbbell/otp,rlipscombe/otp,getong/otp,isvilen/otp,uabboli/otp,dgud/otp,erlang/otp,jj1bdx/otp,isvilen/otp,emacsmirror/erlang,uabboli/otp,vinoski/otp,dgud/otp,g-andrade/otp,getong/otp,bjorng/otp,dgud/otp,uabboli/otp,erlang/otp,mikpe/otp,dumbbell/otp,erlang/otp,emacsmirror/erlang,g-andrade/otp,getong/otp,mikpe/otp,rlipscombe/otp,getong/otp,dgud/otp,isvilen/otp,potatosalad/otp,dgud/otp,uabboli/otp,erlang/otp,ferd/otp,isvilen/otp,erlang/otp,potatosalad/otp,rlipscombe/otp,getong/otp,vinoski/otp,getong/otp,uabboli/otp,jj1bdx/otp,dgud/otp,emacsmirror/erlang,vinoski/otp,vinoski/otp,getong/otp,g-andrade/otp,potatosalad/otp,uabboli/otp,bjorng/otp,dumbbell/otp,potatosalad/otp,bjorng/otp,emacsmirror/erlang,isvilen/otp,ferd/otp,emacsmirror/erlang,erlang/otp,jj1bdx/otp,vinoski/otp,g-andrade/otp,dumbbell/otp,dgud/otp,rlipscombe/otp,erlang/otp,mikpe/otp,rlipscombe/otp,isvilen/otp,ferd/otp,getong/otp,jj1bdx/otp,erlang/otp,mikpe/otp,g-andrade/otp,mikpe/otp,isvilen/otp,jj1bdx/otp,jj1bdx/otp,isvilen/otp,bjorng/otp,mikpe/otp,potatosalad/otp,dumbbell/otp,dgud/otp,vinoski/otp,getong/otp,emacsmirror/erlang,uabboli/otp,potatosalad/otp,emacsmirror/erlang,bjorng/otp,g-andrade/otp,dumbbell/otp,ferd/otp,ferd/otp,dgud/otp,g-andrade/otp,dumbbell/otp,uabboli/otp,emacsmirror/erlang,ferd/otp,bjorng/otp