Fail checks when output directory is not present

I recently ran across this behavior with a site I maintain: I wrote a TravisCI configuration file that ran `nanoc check ilinks`, but I forgot to ensure that Travis actually compiled the site first. For a few weeks, the tests have been passing, and we've been accumulating invalid internal links without knowing it.

@ddfreyne @bobthecow I'm sure you guys will have plenty to say about the code organization here. (For instance, do we really need a new Error subclass? If so, should it be defined elsewhere?) As always, I'm all ears :) 

Commit message:

> Currently, site checks pass when the output directory is not present.
> Ensure that all checks fail in cases where there is no generated site
> content to validate.
Can you add method call parens here?

```
unless File.exists? output_dir
```

should be

```
unless File.exists?(output_dir)
```