Exception handling fixes

The method signature for #response changed in the last cherry-pick.
The error handling here is specific stuff we've added to our branch. I had these changes originally in my PR: http://git.io/MXfOag but when I cherry-picked the version that got into spree/spree_wombat I failed to reapply them.