Adds an APIError type to carry raw API response details

I'm coding up an integration to Mailchimp where I expect to receive some errors -- Trying to make sure the error I'm receiving is the one I expect is difficult with the string payload of RuntimeError

This adds an APIError type that descends from RuntimeError so I'm hoping this is backwards compatible 

It also fixes a bug in api_test.rb where two tests were named the same so the first one wasn't being run