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
nghttpx: Don't send x-forwarded-proto if -s or -p is used
Update README.rst
Optimize connection level remote flow control

Previously when connection level remote flow control window gets 0, we
mark the stream having DATA frame with
NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL.  When connection level
WINDOW_UPDATE is received, we checks all existing streams, including
closed ones, and call nghttp2_stream_resume_deferred_data().  The
profiler shows this is expensive.

Now we prepare dedicated priority queue for DATA frames.  And we don't
mark stream with NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL when DATA
cannot be sent solely due to connection level flow control.  Instead,
we just queue DATA item to queue.  We won't pop DATA item from queue
when connection level remote window size is 0.  This way, we avoid the
expensive operation for all streams when WINDOW_UPDATE is arrived.
Update doc
Clear 2 types of stream deferred flag indenpendently

Previously when nghttp2_stream_resume_deferred_data() is called,
deferred flags in stream->flags are all cleared.  This is not ideal
because if application returned NGHTTP2_ERR_DEFERRED, and also that
stream is deferred by flow control, then all flags are cleared and
read callback will be invoked again.  This commit fixes this issue.
This changes error condition of nghttp2_session_resume_data().
Previously we return error if stream was deferred by flow control.
Now we don't return error in this case.  We just clear
NGHTTP2_FLAG_DEFERRED_USER and if still
NGHTTP2_FLAG_DEFERRED_FLOW_CONTROL is set, just return 0.
Remove boost LDFLAGS from examples
examples: Add tiny-nghttpd

tiny-nghttpd is HTTP/2 server and its purpose is measure the
performance of nghttp2 library code.  Currently it only accepts direct
HTTP/2 connection only.
examples: Build tiny-nghttpd only when epoll is available
nghttp2_hd: Search dynamic table first

Since recently used headers are in dynamic header table, it is
advantageous to search dynamic table first, saving time to search
through static table.
Check Boost library only when it is requested