Replace auto_delete* with defer
nghttpx: Call upstream resume_read after sending pending request to backend

With the combination of HTTP/1 upstream and HTTP/2 downstream,
downstream tells SHRPX_NO_BUFFER while connecting to the backend
server.  Previously, we did not call upstream resume_read and upload
was blocked.  This commit now calls upstream resume_read to unblock.
This commit also remove pending output buffer size of Http2Session
when calculating downstream connection's buffer is full.  This is
desirable since we only operate resume_read by stream basis.
nghttpx: Add more handling situation where response ends before request
Fix memory leak around stream->data_item

Previously we missed the case where stream->data_item is not deleted
and it caused leak.  Now stream->data_item is properly deleted when
session is deleted.  We decided not to delete data_item in
nghttp2_stream_free() since we need nghttp2_session to decide whether
data_item should be deleted or not there.
Add missing NGHTTP2_ERR_BAD_PREFACE to nghttp2_strerror
nghttpx: Reset both timeouts when either read or write succeeds

Previously read and write timeouts work independently.  When we are
writing response to the client, read timeout still ticks (e.g., HTTP/2
or tunneled HTTPS connection).  So read timeout may occur during long
download.  This commit fixes this issue.  This commit only fixes the
upstream part.  We need similar fix for the downstream.
nghttpx: Reset timeouts when either read or write succeeds

See previous commit message why we need this.
nghttpx: Reduce epoll_ctl call
tests: Fix compiler warning
nghttpd: Rewrite using bufferevent (again) for simplicity
Move Makefile.msvc under lib
src: Move libevent related helper functions to libevent_util
Add C++ library libnghttp2_asio on top of libnghttp2

The libnghttp2_asio library is C++ library built on top of libnghttp2.
Currently, it has server API and easily create HTTP/2 server using
node.js like API calls.  See the example server source code in
examples/asio-sv.cc.  The library depends on Boost::ASIO library.
Update doc
Add libnghttp2_asio.pc to .gitignore
doc: Add doc how to enable multi threading in libnghttp2_asio
src: Silence compiler warning
Lower boost version requirement to 1.54.0
src: Add utility APIs to asio_http2.h; add asio-sv2 example to serve files
libnghttp2_asio: Add request::closed() to indicate that stream has been closed