feat(ux): return Linter v2 messages
feat(ux): return Linter v2 messages

`helpers.parse` only returns Linter v1 messages, as such it shouldn't be
used in Linter v2 providers. Change the code to parse the output itself.

This also uses `helpers.generateRange` to generate ranges encompasing
the "word" that starts at the given `line:col`, giving a much better
experience while using it. Note that if `swiftlint` returns an invalid
range currently that is silently being ignored and translated into a
result encompassing the entire first line. A future enhancement would be
to make this generate links to have the user file an Issue in order to
track down the problem and get it solved in `swiftlint`.

AtomLinter/linter-swiftlint