Make NgxBaseFetch use a single named pipe

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 SPDY compatibility

Passing tests, but a lot of TODO's and things to make sure before
this is ready for a makeing a pull request out of it.

- X% speedier html rewriets
- Less fd's. Static number of extra fd's under high pressure.
- Fixed urlasyncfetcher actually shutting down its fetchers