gopls: add a 'stats' subcommand

Add a new subcommand to print statistics about the current workspace,
for use in diagnosing user-reported performance problems.

To achieve this, add a new gopls.workspace_stats custom command, which
is documented to be for internal use only.

Fixes golang/go#59673

Change-Id: Iac99cc5c5d0d7328c3c63663e916df4bcc955fea
Reviewed-on: https://go-review.googlesource.com/c/tools/+/485838
Run-TryBot: Robert Findley <rfindley@google.com>
Auto-Submit: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
diff --git a/gopls/internal/lsp/cmd/implementation.go b/gopls/internal/lsp/cmd/implementation.go
index 5bd95e8..ceffc0f 100644
--- a/gopls/internal/lsp/cmd/implementation.go
+++ b/gopls/internal/lsp/cmd/implementation.go
@@ -40,7 +40,7 @@
 		return tool.CommandLineErrorf("implementation expects 1 argument (position)")
 	}
 
-	conn, err := i.app.connect(ctx)
+	conn, err := i.app.connect(ctx, nil)
 	if err != nil {
 		return err
 	}