Fix locations of shadowing warnings in ms_transform

A shadowed variable in an ms_transform match expression emits a warning
located at the match expression instead of the variable.
Use erl_parse:get_attribute/2 in cover

Avoids treating node attributes as a simple line number, to ensure that any
change to the attributes format won't break cover.
Merge branches 'erl_scan-file-attribute', 'erl_scan-fix-column-tracking', 'ms_transform-locate-shadow-warning' and 'cover-get_attribute' into compile-column-numbers
Handle full locations in erl_parse:abstract/2
Properly handle columns in v3_core:add_warning/2

Locations with column numbers and negative line numbers were not
correctly silenced.
Rewrite qlc_pt:no_duplicates/5

Duplicate errors need to be compared without taking into account column
numbers.
Fix locations of QLC too_many_joins errors

Full locations with line and columns crashed the parse transform.
Fix qlc_pt:get_lcid_line/1 with column numbers
Correctly order messages with mixed locations' types

Warnings without column numbers should always come before a warning with
a column number on the same line.
Allow setting of initial position in epp
Report column numbers in compile
Test column numbers in ms_transform
Document locations with column numbers in the AST doc
Teach erl_scan the range option

This new option makes erl_scan return the location ranges of each scanned token.
Merge branches 'compile-column-numbers' and 'erl_scan-range' into erl_parse-range