nghttpx: Fix possible flow control issue

Previously we only update consumed flow control window when number of
bytes read in nghttp2 and spdylay callback is 0.  Now we notify
nghttp2 library the consumed bytes even if number of bytes read > 0.
This change also uses newly added spdylay_session_consume() API, so we
require spdylay >= 1.3.0.
README.rst: Require spdylay >= 1.3.0
Avoid possible double-free and make nghttp2_buf{s}_free(NULL) success
Use parenthesis explicitly for bit wise operation
nghttpx: Use _Exit() instead of exit() when execve is failed in child process
Refactor functions to update consumed size
Fix bug that NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE causes session failure

Previously returning NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE from
on_header_callback moves input offset badly and it causes header
decompression error on the subsequent frames.  This commit fix this
bug.
Add nghttp2_bufs_realloc
nghttpx: Remove unused member function and variable
Check explicitly that padding field is really read
Add test to check consumed size when no auto window update is enabled
src: Add 308 Permanent Redirect (RFC 7238)
Send window size API extension
Motivation:

The send window size is currently fixed by a macro at compile time.
In order for users of the library to impact the send window size they
would have to change a macro at compile time. The window size may be dynamic
depending on the environment and deployment scheme. The library users
currently have no way to change this parameter.

Modifications:

Add a new optional callback method which is called before data is sent to
obtain the desired send window size. The callback return value will be
subject to a range check for the current session, stream, and settings
limits defined by flow control.

Result:
Library users have control over their send sizes.
Merge branch 'window_size_control' of https://github.com/akamai/nghttp2 into akamai-window_size_control
Merge branch 'akamai-window_size_control'
Hide nghttp2_session_callbacks details and provide setter like functions

To make it possible to add new callbacks without bumping so name, we
decided to hide details of nghttp2_session_callbacks.  We provide
setter like functions to set individual callback function.
Use uint32_t for HTTP/2 error_code

h2-14 now allows extensions to define new error codes.  To allow
application callback to access such error codes, we uses uint32_t as
error_code type for structs and function parameters.  Previously we
treated unknown error code as INTERNAL_ERROR, but this change removes
this and unknown error code is passed to application callback as is.
Remove nghttp2_on_unknown_frame_recv_callback

It is not used by library for a while.  It could be used to pass
unsupported extension frames to application, but its interface
requires library to buffer entire frame, which we'd like to avoid.
For unsupported extension frames, we will add new callbacks which does
not require buffering if they are required.
doc: Update tutorials
Add nghttp2_on_begin_frame_callback

nghttp2_on_begin_frame_callback will be invoked when a frame header is
received.