wtask: Add w_io_task_t that yields on lengthy operations

The new w_io_task_t I/O objects wrap another w_io_t for which w_io_get_fd()
returns a valid file descriptor, in the following way:

* On initialization, the wrapper w_io_t is setup to work in non-blocking mode.

* The implementation uses w_task_yield_io_read() and w_task_yield_io_write(),
  so when an opetation fails with EAGAIN or EWOULDBLOCK, the task yields to
  the scheduler, so other tasks can be scheduled while the I/O progresses in
  the kernel.

* The current implementation just keeps calling w_io_read() and w_io_write()
  on the wrapped w_io_t without checking that it is possible to actually read
  (or write). In the future it would be desirable to use poll(), select(), or
  even epoll() or kqueue() to determine which tasks can be awaken due to I/O
  progress.

Also, two examples adding a very simple HTTP retriever are added. There is
both a normal version using blocking I/O, and a version using tasks which
makes the requests in parallel.