NgxConnection: single event mechanism for NgxFetch and NgxBaseFetch

Abstract the pipe communication into NgxEventConnection, for reuse
by NgxBaseFetch and NgxUrlAsyncFetcher.

Based on Chai's earlier work, but with a few fixes discovered
while working on this and SPDY module compatibility

- Uses less file descriptors, I expect this to be faster but need
  measurement is needed to back that.
- Fixed NgxUrlAsyncFetcher actually shutting down its fetchers.
- Fixes a bug where we wouldn't clean idle pooled NgxConnections.
- Fixes a bug for requests that are unlucky enough to be finalized mid-IPRO lookup.
- Makes us use ngx_handle_read_event/ngx_del_event

Note: this needs a few more manual tests,  and I also want to ensure 
this uses ngx_handle_read_event/ngx_del_event correctly. That aside,
I think this is ready for review.
Re: Why only if NGX_USE_EPOLL_EVENT? This needs a comment.
Comment added, but not as helpful as you might have wanted. 
I suspect that this needs to be done to work around issues on some systems (I see comments in other places in nginx that hint at that, but I'm not sure that the situation is identical).