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.