App is the root of a scli command line application. It has fields to display
when help is called and optional commands and a default function to execute
if no commands are run.
RunWith runs the App with the supplied args. That args are first parsed
through the flags with the remaining passed to a command or the Exec func.
The args are expected to be in the form of ["executable name",
"flags and args"...].