New helper to easily see if a flag has been set

A lot easier than having to do it in the user over and over and over.
diff --git a/flag.go b/flag.go
index eba5fd9..c45ad0f 100644
--- a/flag.go
+++ b/flag.go
@@ -330,6 +330,15 @@
 	return nil
 }
 
+func (f *FlagSet) Changed(name string) bool {
+	flag := f.Lookup(name)
+	// If a flag doesn't exist, it wasn't changed....
+	if flag == nil {
+		return false
+	}
+	return flag.Changed
+}
+
 // Set sets the value of the named command-line flag.
 func Set(name, value string) error {
 	return CommandLine.Set(name, value)
diff --git a/flag_test.go b/flag_test.go
index a5928e5..0f1d751 100644
--- a/flag_test.go
+++ b/flag_test.go
@@ -381,6 +381,26 @@
 	testParse(NewFlagSet("test", ContinueOnError), t)
 }
 
+func TestChangedHelper(t *testing.T) {
+	f := NewFlagSet("changedtest", ContinueOnError)
+	_ = f.Bool("changed", false, "changed bool")
+	_ = f.Bool("unchanged", false, "unchanged bool")
+
+	args := []string{"--changed"}
+	if err := f.Parse(args); err != nil {
+		t.Error("f.Parse() = false after Parse")
+	}
+	if !f.Changed("changed") {
+		t.Errorf("--changed wasn't changed!")
+	}
+	if f.Changed("unchanged") {
+		t.Errorf("--unchanged was changed!")
+	}
+	if f.Changed("invalid") {
+		t.Errorf("--invalid was changed!")
+	}
+}
+
 func replaceSeparators(name string, from []string, to string) string {
 	result := name
 	for _, sep := range from {