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).
Fix for a socket leak in OkHttp on Android

When the preferred Android network changes from
cell -> wifi or wifi -> cell the HTTP connection
pool in use is abandoned to avoid reuse of
connections on the old network. This was added
in commit 8bced3e.

The design for the connection pool was such that
continuous use of the connection pool was required to
clean up idle / expired connections. If a connection
pool becomes idle (as when it is dereferenced on a
network change) it is possible for some connections
to remain in the pool indefinitely.

After the preferred network change, because the old
connection pool was no longer referenced the pool
would be garbage collected and Android's "Strict Mode"
would complain about sockets not being closed.

The only existing way to avoid this was to call
"evictAll()", which would have had issues when a
large number of connections were returned to the pool
after evictAll() was called. It also wouldn't work
for SPDY connections which are shared but not reference
counted, which makes knowing whether it is safe to
close them difficult.

The cleanModeRunnable serves two purposes:

1) While scheduled / executing, it pins the connection
pool in memory to avoid it being garbage collected.
2) It continues to close connections (safely) until the
pool is empty.

If a connection is then added back to the pool the
cleanModeRunnable is restarted.
Increase determinism in DiskLruCache tests.

This kills a flaky test by dependency injecting the executor and using a test executor as a stronger signal.
Two interceptor samples.
Merge pull request #1226 from square/jwilson_1223_interceptor_samples

Two interceptor samples.
Two more interceptor examples.
Merge pull request #1227 from square/jwilson_1224_interceptor_samples_ii

Two more interceptor examples.
Normalize caching size in loop-local variable.

This was present in a bunch of loops, but not all and not consistently. After fixing two, I figured that I would normalize them all under the umbrella of uniformity and being lazy (only lookup up the value once if it never changes).
Version header is always present.
Use Okio's readFully(byte[]) instead of custom implementation.
Merge pull request #1228 from square/jw/never-null

Version header is always present.
Merge pull request #1230 from square/jw/read-fully

Use Okio's readFully(byte[]) instead of custom implementation.
Move method to test module, its only place of use.
Merge pull request #1229 from square/jw/be-lazy

Normalize caching size in loop-local variable.
Merge pull request #1231 from square/jw/test-method

Move method to test module, its only place of use.
Use a name more appropriate for both SPDY and HTTP/2 connections.
Merge pull request #1233 from square/jw/speedy

Use a name more appropriate for both SPDY and HTTP/2 connections.
Remove some needless allocations.

These individually do not contribute a lot, but as a whole end up being seen on allocation tracker.
Merge pull request #1234 from square/jw/musings

Remove some needless allocations.
Don't NPE if disconnecting before connecting.

Closes https://github.com/square/okhttp/issues/1191