all: support popping a browser from termui

- Add 'browser', 'open', and 'b' command aliases to termui
- Open the current conversation URL in default browser
- Add help documentation for the new command

Add browser launch endpoint to Git server for Docker support.

We'll probably want to set up a proper mux for the no-longer-just-git
server pretty soon.

Co-Authored-By: sketch <hello@sketch.dev>
diff --git a/dockerimg/dockerimg.go b/dockerimg/dockerimg.go
index baaf506..555b87e 100644
--- a/dockerimg/dockerimg.go
+++ b/dockerimg/dockerimg.go
@@ -396,9 +396,14 @@
 	}
 	ret.gitLn = gitLn
 
-	srv := http.Server{
-		Handler: &gitHTTP{gitRepoRoot: gitRoot, pass: []byte(ret.pass)},
-	}
+	browserC := make(chan string, 1) // channel of URLs to open in browser
+	go func() {
+		for url := range browserC {
+			browser.Open(url)
+		}
+	}()
+
+	srv := http.Server{Handler: &gitHTTP{gitRepoRoot: gitRoot, pass: []byte(ret.pass), browserC: browserC}}
 	ret.srv = &srv
 
 	_, gitPort, err := net.SplitHostPort(gitLn.Addr().String())
@@ -551,6 +556,7 @@
 	initMsg, err := json.Marshal(
 		server.InitRequest{
 			Commit:            commit,
+			OutsideHTTP:       fmt.Sprintf("http://sketch:%s@host.docker.internal:%s", gitPass, gitPort),
 			GitRemoteAddr:     fmt.Sprintf("http://sketch:%s@host.docker.internal:%s/.git", gitPass, gitPort),
 			HostAddr:          localAddr,
 			SSHAuthorizedKeys: sshAuthorizedKeys,