More sophisticated handling of error responses

Now, when given errors in the response, we make sure nothing succeeded
before raising the exception. If something did succeed, then we let it
slide. The current usage of this code means this won't catch anything
out, but anything batch-processing (e.g.) list members returned by
`list_member_info` will need to check each one to make sure the result
is valid before turning into a `mailchimp.chimp.Member` object.