Allow undefined flags through `allowUndefinedFlags`.

The default behaviour of App with respect to undefined flags (allowing them) is rather surprising given that most flag parsing libraries will barf if passed a flag they don't know about (useful for catching typos etc). This change leaves the default behaviour intact, but allows undefined flags to be disallowed through the `allowUndefinedFlags` def.