internal/lsp/semantic: only return token types the client asked for
internal/lsp/semantic: only return token types the client asked for

The old code mistakenly presumed all clients would want the standard
set of semantic tokens in the LSP specification, but clients have the
option of asking for fewer, so gopls should only use those.

Change-Id: Ic396bf3a2ba1fc3c9b48a380265a6cfded0a8bf6
Reviewed-on: https://go-review.googlesource.com/c/tools/+/321470
Run-TryBot: Peter Weinberger <dd140fb9530d791057dd8833ea6768ff65fcde71@google.com>
gopls-CI: kokoro <2ac7b1f3fa578934c95181d4272be0d3bca00121@google.com>
TryBot-Result: Go Bot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Trust: Peter Weinberger <dd140fb9530d791057dd8833ea6768ff65fcde71@google.com>
Reviewed-by: Rebecca Stambler <d7cf11e5f299d88ea8348366a9fc4f7c335c3afa@golang.org>

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