WorkspaceDiagnosticsHandler generate bogus ranges from error markers

When workspace errors are reported through WorkspaceDiagnosticsHandler, incorrect ranges are sent to the client.

This is caused by calculating the ranges from IMarker.CHAR_START and IMarker.CHAR_END, which are offsets from the start of the document, not from the line.