Use application-level Error objects in the Model classes.

This avoids introducing boom and hoek as dependencies of the client lib.