Dry Runs (Closes #40)

More complicated than I thought. Couldn't get optimist to parse out the booleans:

```
optimist.boolean("d").parse(args)
```

Should have worked but it didn't. Realised it was just as easy to do it ourselves, so I did.