This makes it convenient to wrap an error with a vizerror that needs to use a format string.
Updates tailscale/corp#27066
Signed-off-by: Percy Wegmann <percy@tailscale.com>
Thus new function allows constructing vizerrors that combine a message
appropriate for display to users with a wrapped underlying error.
Updates tailscale/corp#23781
Signed-off-by: Percy Wegmann <percy@tailscale.com>