Adding the ability to bind a flag to a key. Will set the default & override automatically.

Use like:
	fetchCmd.Flags().Int("rsstimeout", 5, "Timeout (in min) for RSS retrival")
	viper.BindPFlag("rsstimeout", fetchCmd.Flags().Lookup("rsstimeout"))
diff --git a/viper.go b/viper.go
index a56472f..2037881 100644
--- a/viper.go
+++ b/viper.go
@@ -23,6 +23,7 @@
 	"github.com/mitchellh/mapstructure"
 	"github.com/spf13/cast"
 	jww "github.com/spf13/jwalterweatherman"
+	"github.com/spf13/pflag"
 	"gopkg.in/yaml.v1"
 )
 
@@ -40,6 +41,7 @@
 var config map[string]interface{} = make(map[string]interface{})
 var override map[string]interface{} = make(map[string]interface{})
 var defaults map[string]interface{} = make(map[string]interface{})
+var pflags map[string]*pflag.Flag = make(map[string]*pflag.Flag)
 var aliases map[string]string = make(map[string]string)
 
 func SetConfigFile(in string) {
@@ -116,6 +118,15 @@
 	return
 }
 
+func BindPFlag(key string, flag *pflag.Flag) (err error) {
+	if flag == nil {
+		return fmt.Errorf("flag for %q is nil", key)
+	}
+	pflags[key] = flag
+	SetDefault(key, flag.Value.String())
+	return nil
+}
+
 func find(key string) interface{} {
 	var val interface{}
 	var exists bool
@@ -123,6 +134,15 @@
 	// if the requested key is an alias, then return the proper key
 	key = realKey(key)
 
+	// PFlag Override first
+	flag, exists := pflags[key]
+	if exists {
+		if flag.Changed {
+			jww.TRACE.Println(key, "found in override (via pflag):", val)
+			return flag.Value.String()
+		}
+	}
+
 	val, exists = override[key]
 	if exists {
 		jww.TRACE.Println(key, "found in override:", val)