throw better errors when YAML isn't valid

Be sure to suppress traceback when YAML isn't valid and try to throw useful error messages when, for example, this happens:

```yaml
depends: {{pi}} # pyYAML interprets this as a new object, not a string
```

This came up with @stringertheory trying to use global variables