Support token attributes as proplists

When adding the `text` option to `erl_scan:string/3`, the attributes field takes the form of a proplist (like the one below) which is not handled correctly by aleppo, since it assumes the tuple `{Line, Column}`.
```erlang
[{line, Line :: integer()}, {column, Column :: integer()}, {text, Text :: string()}]
```