TS-2729: Lay down some initial HTTP/2 infrastructure

Factor out a common client session base class. Add ProxyClientSession
as a base class for user agent session.  This enforces the pattern
of modelling a client session as a VConnection, and gives some basic
common API.  Push session hooks handling down to ProxyClientSession.
This gives us a common implementation for different kinds of sessions.

Add various HTTP/2 constants, types and enumerations.

Add basic HTTP/2 infrastructure. Create a Http2ClientSession class
to manage the session, session hooks and frame input and output.
The Http2ConnectionState class handles the protocol semantics and
knows about how different frames should be handled.