Add tests for error cases
Throw Errors instead of returning them

Returning Errors from a synchronous API is surprising behavior.
Merge pull request #3 from jugglinmike/throw-errors

Throw errors