Throw ServiceUnavailable for HTTP 504s as well as HTTP 503s

Hi there again @ruckus ! We came across this response from QBO and it looks like `Quickbooks::ServiceUnavailable` should fit the bill.

```
HTTP Error Code: 504, Msg:
<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2014-10-23T17:13:11.934Z" requestId="ae04144172874bf488486d1874c364d1">
    <Fault type="SERVICE">
        <Error code="6002">
            <Message>message=Timeout occurred while proxying request; errorCode=006002; statusCode=504</Message>
        </Error>
    </Fault>
</IntuitResponse>
```

This PR also adds some test coverage for HTTP 503s. Thanks!