git-gui: Allow browser subcommand to start in subdirectory

Like our blame subcommand the browser subcommand now accepts both
a revision and a path, just a revision or just a path.  This way
the user can start the subcommand on any branch, or on any subtree.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
diff --git a/lib/browser.tcl b/lib/browser.tcl
index 911e5af..e8802d0 100644
--- a/lib/browser.tcl
+++ b/lib/browser.tcl
@@ -13,13 +13,13 @@
 
 field ls_buf     {}; # Buffered record output from ls-tree
 
-constructor new {commit} {
+constructor new {commit {path {}}} {
 	global cursor_ptr M1B
 	make_toplevel top w
 	wm title $top "[appname] ([reponame]): File Browser"
 
 	set browser_commit $commit
-	set browser_path $browser_commit:
+	set browser_path $browser_commit:$path
 
 	label $w.path \
 		-textvariable @browser_path \
@@ -73,7 +73,11 @@
 
 	bind $w_list <Visibility> [list focus $w_list]
 	set w $w_list
-	_ls $this $browser_commit
+	if {$path ne {}} {
+		_ls $this $browser_commit:$path $path
+	} else {
+		_ls $this $browser_commit $path
+	}
 	return $this
 }