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.
TS-2919: omit git contol files from tarball releases
TS-2893: improved support for ECDSA certificates

Add the ability to deliver different certificates to the client
depending on the cipher list advertised by the client.

The directive is to support loading multiple PEM certificate chains
with different algorithms at a time, each PEM file may include
multiple certificates (e.g. cert1&key1 + intermediate cert2 &
key2+...). After a few more thinking, I realized it should be OK
to reuse ssl_cert_name to do that.

To simplify the SSL certificate configurations, perhaps we can
obsolete ssl_ca_name and proxy.config.ssl.server.cert_chain.filename
gradually.
TS-2921: fix build failure from TS-2893
TS-2729: fix warnings from gcc
TS-2780: Core dump in SpdyRequest::clear() in production testing of SPDY
TS-2893: fix casting bug while tokenizing SSL certificate lists
tsqa: fix broken CN matching for certificate handling tests
TS-2929: SPDY should allow arbitrary methods
TS-2929: SPDY should allow arbitrary methods
tsqa: use the proper OPENSSL variable
Revert "TS-2780: Core dump in SpdyRequest::clear() in production testing of SPDY"

This reverts commit c9d4433531767c9b5f6db42b488af4552bc5c4a9.
TS-2780: Core dump in SpdyRequest::clear() in production testing of SPDY
updated changes to include TS-2780
TS-2649: use certificate chain loading everywhere

Use SSL_CTX_use_certificate_chain_file() everywhere we load a SSL
certificate. This lets the operator use a certificate chain in a
single file for both the SSL client and server.
TS-2931: plugin metrics fail after a crash

If a plugin uses TSStatFindName followed by TSStatCreate, TSStatFindName
can return 0 for all the metric IDs after a traffic_server crash.

This will happen every time with the following conditions:
  1. traffic_manager has pulled the stat records from traffic_server
  2. traffic_server crashes

When traffic_server comes back up, it pulls the records from
traffic_manager. traffic_manager sends the records including the
rsb_id field. However, RecForceInsert() does not copy the rsb_id
field from the message to the actual record. Subsequent stat lookups
succeed because the stat is registered, but always receive a rsb_id
of 0.

The fix is to ensure that we copy the rsb_id field so that stat
lookups succeed.
TS-2932: specify the build number at build time

Add a --with-build-number configuration option so that this can be
published in proxy.node.version.manager.build_number and
proxy.process.version.server.build_number.
Fix error message spelling
TS-2904: add Via header decoder option to traffic_line

Add --decode_via option for traffic_line which decodes the short
and long version of the Via header.
TS-2934: Default remap rule will remap synthetic test