Resurrect http/2 frame logging,
Merge pull request #1181 from square/adrian.frame-logger

Resurrect http/2 frame logging,
Avoid a reverse DNS-lookup for a numeric proxy address

When the proxy was specified as an IP address the RouteSelector would force
a reverse-lookup. This introduced extra latency when the DNS is being slow or
missing. It also then turned the name back into a set of IPs, which could
result in the original IP address not being given priority and
connection attempts being made to IPs besides the one specified by the
original Proxy specifier.

This change distinguishes between whether the proxy InetSocketAddress is
specified with a string, or with an InetAddress. This is referred to as
"unresolved" and "resolved" respectively. If an InetAddress is present
we assume we should use that single address to communicate with the
proxy.

This relies on the InetSocketAddress being created "unresolved": if the
InetSocketAddress is created from a hostname but created "resolved",
the InetAddress is filled in and OkHttp will interpret that as an
instruction to just communicate with just that one IP.
Merge pull request #1186 from nfuller/AvoidProxyReverseLookup

Avoid a reverse DNS-lookup for a numeric proxy address
Strict, modern HostnameVerifier.

This brings OkHostnameVerifier up to date with the intersection of
RFC 2818 and Baseline Requirements, and adds support for absolute
domain names.

The changes are:
* Absolute domain names are supported. All presented hostnames are
  treated as absolute domain names. All domain names in server
  certificates are treated as absolute domain names as well.
* Wildcard character (*) is permitted only in the left-most domain
  name label and must be the only character in that label. For
  example, *.example.com is permitted, while *a.example.com,
  a*.example.com, a*b.example.com, a.*.example.com are not permitted.
* Wildcard character (*) must match exactly one domain name label.
  For example, *.example.com matches www.example.com, but does not
  match example.com or www.test.example.com.
* Wildcard pattern cannot mach single-label domain names: * and *.
  patterns are rejected.

This is a cherry-pick of the Android Open Source Project (AOSP) change
https://android-review.googlesource.com/#/c/117462/.

Fixes #1165
Merge pull request #1187 from klyubin/strict-modern-hostname-verifier

Strict, modern HostnameVerifier.
Initial implementation of interceptors.

I'm anticipating implementing interceptors at two independent parts
of the API. The first is high-level interceptors, that intercept
before the socket connection has been established.

The second set of interceptors will only execute for requests that
require a socket connection. Those are forthcoming.
Merge pull request #1193 from square/jwilson_1207_interceptors

Initial implementation of interceptors.
Change COMPATIBLE_TLS to be TLSv1.0 and not SSLv3

Based on a discussion with Jesse Wilson during
https://github.com/square/okhttp/pull/1189.
Merge pull request #1196 from nfuller/SwitchOffSslv3

Change COMPATIBLE_TLS to be TLSv1.0 and not SSLv3
Apply fix for devices with large socket buffers

The same fix as for ThreadInterruptTest from commit
d95341bb7bc13ee2a4c7a08d6c7f9944a8a51ae3, but made to
DisconnectTest.
bind specifically to a loopback interface
Remove NPN support from OkHttp

Work in progress.

I see a new failure from a certificate pinning test but I don't
know why. Help solving this would be appreciated.

I also see failures before & after:
1) A failure from DisconnectTest
(https://github.com/square/okhttp/pull/1197 may fix that).
2) A failure from CallTest.doesNotFollow21Redirects_Async (timeout)

The maven changes should be treated with the contempt they deserve.
I mostly removed things I didn't understand and stroked maven until
it stopped squealing. The benchmarks / okcurl changes are a
particular mystery.

Tried with arbitrary versions of openjdk7 and openjdk8 I had
lying around. Behavior was the same across both (i.e. the same
failures).
Update to h2-16, hpack-10.
Merge pull request #1202 from adriancole/adrian.h2-16

Update to h2-16, hpack-10
Merge pull request #1197 from nfuller/FixDisconnectTest

Apply fix for devices with large socket buffers
Track exception message changes for the dynamic table.
Merge pull request #1194 from mruddy/loopback

mockwebserver: bind specifically to a loopback interface
Merge pull request #1204 from square/jwilson_1215_exception_message

Track exception message changes for the dynamic table.
Update to Okio 1.1.0.