Respect the max idle connections limit.

The structure here is a bit ugly. But it permits a single 'synchronized'
block, which makes the method easier to reason about.

Closes https://github.com/square/okhttp/issues/1239
Merge pull request #1249 from square/jwilson_1228_evict

Respect the max idle connections limit.
New API for iterating DiskLruCache contents.

For https://github.com/square/okhttp/issues/853
Don't reuse ephemeral port numbers.

MockWebServer was reusing port numbers, and this was causing tests
to be flaky in some situations.
Merge pull request #1250 from square/jwilson_1229_cache_iterator

New API for iterating DiskLruCache contents.
Merge pull request #1251 from square/jwilson_1229_setReuseAddress

Don't reuse ephemeral port numbers.
New APIs to iterate the response cache.

Closes https://github.com/square/okhttp/issues/853
Merge pull request #1252 from square/jwilson_1229_iterate_http_cache

New APIs to iterate the response cache.
Cache 302s and 308s with the right response headers.

Closes https://github.com/square/okhttp/issues/1158
Merge pull request #1254 from square/jwilson_1229_opt_into_caching

Cache 302s and 308s with the right response headers.
Don't recover from timeouts.

Closes https://github.com/square/okhttp/issues/1146
Merge pull request #1257 from square/jwilson_1230_timeouts

Don't recover from timeouts.