Exceptions

I have added actually raising errors in beetle.

I preferred this approach over just logging errors, because of two reasons.
* I would like beetle to fail loudly and and deadly if something goes wrong. As I think it's more appropriate to force the user to fix the mistakes, rather than letting a broken site be rendered and mistakenly uploaded.
* I think (but I am uncertain of the merits) that I want to keep the cli output in located mostly, in the cli. This may lead to a lot of error handling there, but I *think* that it may be worth it.

Anyway, take a look and moan about it, that's the reason I didn't just merge it :)
Urgh..! This is not pretty. Suggestions welcome.