Better error handling

NOT READY FOR MERGING YET!

Here's what I've got for the facets so far - the general benefit being that they've got the request parameter in each handler.

With services, however, we've got a slight issue - we can include the error handling as a prerequisite for each service, though that makes testing a bit of a pain (though not impossible). 

Thoughts/comments/recommendations on how this refactor is going so far?

Addresses #154.