flag: make zero FlagSet useful

This makes it possible to use a FlagSet as a
field in a larger struct.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5036041
diff --git a/src/pkg/flag/flag_test.go b/src/pkg/flag/flag_test.go
index 19c0dea..f135316 100644
--- a/src/pkg/flag/flag_test.go
+++ b/src/pkg/flag/flag_test.go
@@ -180,7 +180,8 @@
 }
 
 func TestUserDefined(t *testing.T) {
-	flags := NewFlagSet("test", ContinueOnError)
+	var flags FlagSet
+	flags.Init("test", ContinueOnError)
 	var v flagVar
 	flags.Var(&v, "v", "usage")
 	if err := flags.Parse([]string{"-v", "1", "-v", "2", "-v=3"}); err != nil {