Customizable command not found function

When building CLI tools, I like to make it as easy as possible for people to discover functionality.  The default message when a command is not found is not always helpful: `No help topic for '%v'\n`.  With this pull request, you can create a custom command not found function with the app:

```
app := cli.NewApp()
app.CommandNotFound := func(c * cli.Context, command string) {
  // Insert much more helpful functionality, like: Your command is not 
  // found.  Perhaps you meant: command foo
}
```

I was looking for the quickest path to make this functional.  Please makes recommendations / reject as needed.  Cheers, Chris