Restore ResponseCache.get() / ResponseCache.put() methods on HttpResponseCache

This is required for interoperability between HttpResponseCache
with Java's HttpURLConnection and some scenarios on future Android
releases where an app has bundled an older version of OkHttp that uses
the ResponseCache API.
Merge pull request #656 from nfuller/ResponseCacheGetPut2

Restore ResponseCache.get() / ResponseCache.put() methods on HttpRespons...
Return HttpResponseCache to previous (e.g. KitKat) behavior

This change required to handle this Android scenario:

When this version of OkHttp is packaged into Android in a future
release (in com.android.okhttp...) there is a possibility that
an older version of OkHttp bundled with application
(in com.squareup.okhttp...) will pick up the newer HttpResponseCache
via ResponseCache.getDefault(). It will attempt to use the get() / put()
methods. Commit e2599be9e073f1be8e929597c358e2664ab0c9a9 was
intended to restore HttpResponseCache get() and put() and avoid the
UnsupportedOperationException that would be thrown.

Unfortunately, it didn't quite do it:

In KitKat and older versions OkHttp, in HttpResponseCache the behavior
was to ignore any calls to put(URI, URLConnection) including
any HttpURLConnection/HttpsURLConnection that wasn't its own
(i.e. only ones from com.android.okhttp would be cached). The previous
fix to HttpResponseCache re-introduced get()/put() but didn't implement
the necessary instanceof checks.

Jesse also informs me that coexistance with other implementations
of HttpURLConnection is not required (since OkHttp replaces the
HTTP implementation on the desktop). I have also since discovered
that HttpResponseCache didn't implement the cache-control logic
required to follow the letter of the Java API anyway, which means
that HttpResponseCache is not suitable for use in cases where
the Http(s)URLConnection implementation expects a fully compliant
implementation.

Also addressed nits from e2599be9e073f1be8e929597c358e2664ab0c9a9.
Merge pull request #659 from nfuller/ResponseCacheGetPut2

Return HttpResponseCache to previous (e.g. KitKat) behavior
Remove 'jar-with-dependencies' qualifier from download link.

This link is used when the jQuery Maven Artifact plugin cannot resolve the absolute URL of the latest artifact.
Merge pull request #661 from square/jw/jar-without-dependencies

Remove 'jar-with-dependencies' qualifier from download link.
Teach MockWebServer to throttle the request body.

We use a single throttle for both request and response. This is
sufficient for all of our current needs.

This breaks API compatibility with previous custom dispatchers.
Dispatchers that override peekSocketPolicy() must now override
peek() instead.
Merge pull request #663 from square/jwilson_0323_throttle_request_body

Teach MockWebServer to throttle the request body.
Don't do I/O if the thread is interrupted.
Merge pull request #667 from square/jwilson_0329_concurrency_model_thread_interrupt

Don't do I/O if the thread is interrupted.
Fix a bug when a POST was redirected to a GET.

We were keeping the Content-Length header, leading to conflicting
body information.
Merge pull request #668 from square/jwilson_0329_post_redirect_get_regression

Fix a bug when a POST was redirected to a GET.
Update changelog for 1.5.3.

(cherry picked from commit 5a8c7d881ec10a0ef0fe1b33fd55f24ab728f858)
Track Connection ownership.

Connection ownership is somewhat racy: when an HttpURLConnection reads
the last byte of a connection, its ownership is released and given to
the connection pool.
Drop ALPN support.

https://github.com/square/okhttp/issues/666
Merge pull request #670 from square/jwilson_0330_drop_alpn

Drop ALPN support.
Fix for Android: old app-bundled OkHttp uses new HttpResponseCache

Make JavaApiConversion explicitly ignore a request header with a null
key. null keys were used by older versions of OkHttp to store the
"request line".
Merge pull request #669 from square/jwilson_0330_track_connection_ownership

Track Connection ownership.
Merge pull request #672 from nfuller/FixNullRequestKey

Fix for Android: old app-bundled OkHttp uses new HttpResponseCache
New disconnect strategy.

Support asynchronous disconnects by breaking the socket only, which
should cause the thread using that socket to trigger clean-up.