evdns_request_parse

Here is the direction I was thinking for exposing request_parse to the world. My use case is that I have a packet in memory and I would like to parse it, inspect it, etc. I don't have or need an `evdns_server_port`.

One confusing thing for users might be that `evdns_request_parse` returns a `evdns_server_reques` which is not associated with a port, so for example passing it to `evdns_server_request_respond` would result in an error. Either we could document that, or provide a new function `evdns_request_set_port` or whatever, which would do the stuff `server_port_read` now does.

I'm also happy to write tests, if you think there is something new to be tested.

Thoughts?