Throw real Errors

This makes debugging much, much easier, as an `Error` has a stack trace.
Merge pull request #74 from stephenmathieson/throw-errors

Throw real Errors