add SpdyDnsResolver and SpdyDnsResult to enable handling caching easier.
add SpdyDnsResolver lookupURL: method
update SpdySession.m to use the new SpdyDnsResolver
implement DNS caching in the SpdyDnsResolver.

upon dns failure, look in the cache and try to use that.