Raise SailThru::ClientError when unable to parse API response

If the client fails to parse the response body, then the API is presumed to be malfunctioning and unavailable.  Throw an UnavailableError including the actual response body returned.

Only return an error body when a parsable response is returned from the API, including a valid error code.  e.g. { 'error'=> 9 }

Values for 'error' should only ever include valid SailThru error codes returned in a well-formed response body. (http://getstarted.sailthru.com/api/api-response-errors)