schema/types: split out Exec to its own type

`App.Exec` parameters and `EventHandler.Exec` parameters should undergo
the same validation.
Merge pull request #68 from jonboulle/exec

schema/types: split out Exec to its own type