internal/lsp: fix incorrect line and start of semantic tokens
internal/lsp: fix incorrect line and start of semantic tokens

Current implementation returns incorrect result when some of the items are skipped, because positions could be relative to a skipped item. Instead, each position must be relative to the previous item added to the result.

Change-Id: I3c1a68d37bf0c9cfc1bccfe6f76c25b536224293
GitHub-Last-Rev: 6eedc7cbcc27f47ed5742b340f4438291ab70863
GitHub-Pull-Request: golang/tools#376
Reviewed-on: https://go-review.googlesource.com/c/tools/+/396715
Run-TryBot: Peter Weinberger <dd140fb9530d791057dd8833ea6768ff65fcde71@google.com>
gopls-CI: kokoro <2ac7b1f3fa578934c95181d4272be0d3bca00121@google.com>
TryBot-Result: Gopher Robot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Peter Weinberger <dd140fb9530d791057dd8833ea6768ff65fcde71@google.com>
Trust: Peter Weinberger <dd140fb9530d791057dd8833ea6768ff65fcde71@google.com>
Trust: Suzy Mueller <a1fd7fee333bfb1457f0c89ab258f70a76be3c5d@golang.org>

golang/tools,golang/tools,golang/tools,golang/tools,golang/tools