tool_cfgable: Added GlobalConfig pointer to OperationConfig

In order to ease the moving of global options such as the error stream,
updated the OperationConfig structure to point to the GlobalConfig.
tool: Moved --silient to the global config

Other global options such as --libcurl, --trace and --verbose to
follow.
tool_main: Forgot to initialise the first operation's global pointer
tool: Moved --trace and --verbose to the global config
tool_cfgable: Code policing of structure pointers
test96: Updated accordly for recent changes
tool_main: Fixed a memory leak on main_init error
http2: build with current nghttp2 version

nghttp2 has yet again extended its callback struct and this is an
attempt to make curl compile with nghttp2 from current git
Fix bug that HTTP/2 hangs if whole response body is read with headers

For HTTP/2, we may read up everything including responde body with
header fields in Curl_http_readwrite_headers. If no content-length is
provided, curl waits for the connection close, which we emulate it
using conn->proto.httpc.closed = TRUE. The thing is if we read
everything, then http2_recv won't be called and we cannot signal the
HTTP/2 stream has closed. As a workaround, we return nonzero from
data_pending to call http2_recv.
transfer.c: Fixed non-HTTP2 builds from commit cde0cf7c5e