Interpret the response to a query, checking for error codes and following delegations if necessary.
| Parameters | response | The Message received in response to issuing query. (type: Message) | 
 | query | The dns.Query which was issued. (type: dns.Query.) | 
 | timeout | The timeout to use if another query is indicated by this response. (type: tuple of int) | 
 | queriesLeft | A int giving the number of queries which may yet be attempted to answer this query before the attempt will be abandoned. | 
| Returns | A Failure indicating a response error, a three-tuple of lists of twisted.names.dns.RRHeader giving the response to query or a Deferred which will fire with one of those. |