Add the ability for a struct to contain a flag.Value type.
Add the ability for a struct to contain a flag.Value type.

To allow custom types to be handled, test if the given structure member
implements the flag.Value interface.  If it does, use flag.Var function instead
of the usual flag.*Var functions.  This also allows standard types to be
overridden along with custom types.

beni55/flagfile,spacemonkeygo/flagfile