Correctly parse exec when there's spaces

Closes #418
Closes #427 

This version will handle quoted entities in the exec string or escaped spaces correctly, so the user can run:

```
--exec '"/bin/my cool app" {{filename}}'
```

Or

```
--exec '/bin/my\ cool\ app {{filename}}'
```

This will work both on the command line and from the API.