evdns caching

This is a simple splay tree implementation of caching in evdns. I toyed with the idea of implementing it in my app, but the lack of ttl information in the addrinfo callback made it impossible to do accurate expiry. Any other implementation seemed to require copying large sections of evdns code, so I patched evdns instead.

If a cache implementation in evdns is not a welcome change, one of those interfaces changes would be very helpful for applications interested in caching.