Exceptions org

Stuff like Shopify/shopify#16409 are nasty and there's no reason something like that should bubble up. This set of changes will rescue common network errors and wrap them in a (new) OpenSRS error base class.

This will allow us to simply rescue OpenSRS::OpenSRSError in various places in Shopify and decide what to do when we don't get a valid response.

/cc @csaunders @camilo